vue3.0开发路线公布
lihongxun945 opened this issue · 2 comments
过了一个国庆回来就发现vue又有新闻了,作者尤雨溪发布了3.0版本的开发路线。看了一下,相当多的点正是我在用的时候,或者是在读源码的时候觉得不太好的地方。这里我挑几个重点的说一下:
放弃flow而直接改用TS来写源码
算是对TS党的一个福音,这样会导致vue在使用TS的时候应该更少会出现类型推断不准确等的兼容性问题。
把源码拆分成不同的独立模块
这一点非常棒,比如会把 Observer
模块独立成一个单独的包维护,这样大家看代码的时候会更加清晰。并且,由于把一些功能独立出来,以后就可以通过不同的包来配置出不同的版本。比如可以有一个 defineProperty
版本的Observer兼容性好,而另一个用 proxy
实现的则能完美解决类似添加属性的问题。
另外,Observer 独立之后,就可以单独调用他来监听数据变动,而不是需要通过 new Vue()
的方式。相信 vuex
里面的这种实现会马上进行一次升级。
用Proxy实现Observer
这一点其实早就被提出了,因为 defineProperty
的局限性,无法做到检测到对属性的添加操作、无法检测通过数组下标进行修改等。用proxy
可以完美解决这些问题。不过 proxy
本身的兼容性没有 defineProperty
好,可以参见这里 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Proxy
原生支持class组件
其实我们现在的组件要么是一个render方法,要么是一个配置对象,而不像React那样是一个原生的类。在Vue中,我们使用的组件其实并不是我们声明的那个,我们只声明了一个组件的配置对象,Vue会通过调用 Vue.extend
帮我们创建一个类。这次改动之后,应该会变得和React一样。我们使用的组件就是我们声明的类,而不是被Vue隐式的创建了一个。
另外还有一些性能上的提升。
简单的记录下,暂时觉得比较关注的就是上面的几个改动,期待版本发布。
今天,我只是一个实习僧
然而现在都还没有正式发布3.0