Vue2遇到的问题
Vue2对于复杂组件的代码难以维护。
怎么理解这句话呢?在使用Vue的过程中可以发现,各部分是按类型来区分的,比如data、methods等等。这就使得实现一种功能的代码分散在不同的地方,当功能越来越多越来越复杂的时候就很难整合维护了。而且不同功能的数据可能互相依赖,对后续的维护增加了很多难度。
针对这一点,Vue2可以采取Mixin来进行改进。把代码归为一类然后使用。但是:
- Mixin会导致命名冲突。
- 不能很好的暴露出来变量的作用。
- 重用到其他的组件中经常会遇到问题。
所以就出现了Composition API(之前在学习Composition API的时候也看到过,说是Mixin的全面升级)
Setup()
setup(英文为准备的意思)是无法访问到this的,因为他是在Vue实例初始化之前执行的。
Vue3和Vue2在响应式上的区别
Vue2中使用的是ES5中的语法Object.defineProperty()来实现响应式的。需要知道具体的属性名。(所以data无法检测property的添加或移除)
Object.defineProperty