1.响应式的区别
2.0中vue的响应式是基于数据劫持(object.defineProperty这个方法来进行劫持的)当前这个方法是兼容主流浏览器的ie9以上都可以使用 他是可以监听数据的变化 从而让vue做出改变
但是他有一个bug object.defineProperty这个方法只能够监听初始化的时候数据 如果程序运行到一半你给data中的对象或者是数组添加新属性的时候 由于他只会在初始化监听 那么你中间添加的内容就无法监听 没有监听到 就没有数据劫持 没有数据劫持 那么久没有双向绑定 没有双向绑定 那么数据变视图就不会发生改变 我们使用$set
3.0中 对2.0的bug进行了解决
3.0中的响应式是采用ES2015中最新的一个规范 Proxy来进行替代的 proxy是惰性监听(他不会在初始化的时候监听数据 而是在你使用数据的时候才回去监听)
proxy是一个比较新的规范 ie还不支持 vue为了解决ie不支持的问题 所以单独给ie进行了适配
传统主流浏览器 使用proxy来进行监听
但是在ie中还是使用2.0中的object.defineProperty
2.底层的变化
3.0底层全部都是使用ts(typescript)编写的 今后3.0可以更好的与ts结合
3.属性声明方式
2.0中都是使用vue属性的方式来创建数据 方法 计算属性等内容的
3.0中 改变了 变成了 api方式进行创建 也就是或vue3.0把变量 方法 计算属性等内容封装成了一个个的方法 使用方法的方式进行调用