We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
过了一个国庆回来就发现vue又有新闻了,作者尤雨溪发布了3.0版本的开发路线。看了一下,相当多的点正是我在用的时候,或者是在读源码的时候觉得不太好的地方。这里我挑几个重点的说一下:
放弃flow而直接改用TS来写源码 算是对TS党的一个福音,这样会导致vue在使用TS的时候应该更少会出现类型推断不准确等的兼容性问题。
把源码拆分成不同的独立模块 这一点非常棒,比如会把 Observer 模块独立成一个单独的包维护,这样大家看代码的时候会更加清晰。并且,由于把一些功能独立出来,以后就可以通过不同的包来配置出不同的版本。比如可以有一个 defineProperty 版本的Observer兼容性好,而另一个用 proxy 实现的则能完美解决类似添加属性的问题。 另外,Observer 独立之后,就可以单独调用他来监听数据变动,而不是需要通过 new Vue() 的方式。相信 vuex 里面的这种实现会马上进行一次升级。
Observer
defineProperty
proxy
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隐式的创建了一个。
Vue.extend
另外还有一些性能上的提升。
简单的记录下,暂时觉得比较关注的就是上面的几个改动,期待版本发布。
The text was updated successfully, but these errors were encountered:
今天,我只是一个实习僧
Sorry, something went wrong.
然而现在都还没有正式发布3.0
No branches or pull requests
过了一个国庆回来就发现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隐式的创建了一个。另外还有一些性能上的提升。
简单的记录下,暂时觉得比较关注的就是上面的几个改动,期待版本发布。
The text was updated successfully, but these errors were encountered: