组合优于继承的思想,不过我觉得,应用不复杂到一定程度,未必能体会到组合的优势 反倒是生命周期的那套设计可能更符合上古 jquery 时代的前端的直觉(不过组合式 API 里也有生命周期的概念,不像 react 那样完全抛弃了生命周期的概念,属于是介于两者中间的设计) 不过你要问我用啥我肯定是用组合式 API
DOLLOR
2023-04-20 16:53:34 +08:00
选项式 API 按照 data 、methods 、生命周期、computed 、watch 划分区域。 组合式 API 则是鼓励开发者按照业务来划分区域。
选项式 API 写法会造成相同业务之间的数据、逻辑经常割裂开来,而且不易于复用。 组合式 API 目的就是解决这个问题,但是对开发者的要求也提高了。因为“业务”并不是很清晰的概念。 如果开发者技术能力不行,对业务了解不足,缺乏远见,就会写出比选项式 API 更混乱的代码。
zglw2012
2023-04-20 17:31:25 +08:00
可以将业务逻辑与 vue 框架分离 class AService{ state method(){ // ... } } 对接到 vue 组件的时候,可以直接使用一个 reactive 就完成了逻辑的响应式绑定: const aService = reactive(new AService()) 在模板里,需要用 state 了,就是 aService.state ,需要用函数了,就 aService.method()
也就是说,用 vue 组合式 api ,一般的项目只用一个 reactive 就够了,再大一点的项目,加个 provide 和 inject 也够了。 如果两个业务逻辑互相有依赖,可以使用构造函数传,也可以在一个业务逻辑里增加个 setBService 的方法传。