🧩

项目结构

关于项目接口api部分

项目的api尽量放在一个文件里面,比如src下的api文件里面,可以根据模块进行用文件夹分组,并且分组里面增加model文件夹,去写一些后端返回的类型文件,好处有
  1. 接口代码复用
  1. 接口代码从业务代码分离,解耦
  1. 定义好接口类型,写逻辑的时候,可以防止很多编写代码时的低级错误,让代码更好维护,易读, 减少调试的时间
  1. 定义类型可以相当于一个小型的后端接口描述文档
notion image
代码对比

关于SFC文件的script部分

💡
composition api 跟options api比起来,下限变得更低,上限变得更高,如果不注重项目结构,模块化,很容易写出比vue2 options api还要难以维护的代码。
  1. 对于代码结构来说,把script标签的内容放在一个单独的文件夹里面,看似让视图层和model层进行了分离,但是可能会造成更多的一系列的问题,比如初始化代码时造成的一些心智负担,无法避免vue的一些编译器宏需要在SFC的script里面写,让代码变得更加碎片化 ,变得更加耦合
    1. ⚠️
      错误示例
  1. 由于ES Module的特性,导入导出都是值的引用,所以会造成一个问题,就是页面的数据如果定义在单独的ts文件里面,切换路由,会无法自动复原,需要手动去清空(有点像手动gc的感觉),增加工作量,对于此类功能我们应当根据功能拆分,而不是根据文件类型类型拆分
    1. ⚠️
      错误示例
 

关于使用composition api写hooks :


🚽
如何结合composition api写hooks
 

关于SFC文件的CSS部分

🎠
CSS

关于Typescript部分

1. 使用ts的时候我们一定要尽量避免使用as和any,除非真的认为这段代码不会有意料之外的问题,确保万无一失再使用
⚠️
错误示例
  1. 项目结构组织
🥅
typescript类型文件

关于watch的使用

🪔
watch和computed的区别