Vue3.0响应式系统二三事

惊觉近来对于新技术的涉猎和思考总结有些懈怠(自我反省ing),赶紧写篇博客消散一下愧疚感。

10月5号,正值国庆佳节,Vue作者尤雨溪在全球最大的同性交友网站 github 开源了 vue@3.0.0 的 alpha 版代码 ,大家可以去看看小右的提交记录和issue处理速度,不得不感慨, 优秀的人总是自律且勤奋的 。想想当时还在青海浪,已经几个月没写博客的自己,不禁有些汗颜。

扯远了,我们说回Vue3,说到 Vue3 不得不提到6月份左右发生的一点小新闻:

故事的背景是,小右在Vue社区发布的一篇 请求意见稿(RFC) ,用于讨论即将发布在Vue3.0中的函数式组件编写方式,不久后,知名论坛 reddit 和 hacker news 上的一些负面帖子引发大批的开发者涌向 RFC 表达他们的愤怒,甚至不乏一些侮辱性评论。

很多人在不经自行推敲就人云亦云的持以下观点:

  • 因为现有语法被移除或者被替代,所有 Vue 代码都必须重写
  • 新语法没有强制结构,会导致意大利苗条式代码
  • Vue在模仿 React / Angular,它要变成 React / Angualr 了
  • 所有HTML都要写在一个超长的字符串里

事实上,在认真阅读 RFC 以及部分源码后(顺便提了两个PR: #441 , #453 ),我认为 这些观点都是无稽之谈

以上并不是这篇文章想要说的内容,只是想用这件事,警醒正在参与开源工作、从开源中获益的自己:

  • 不要轻信别人的一面之词,要有自己的思考和判断
  • 不要轻易对不了解的东西发表评价,尤其是负面评价
  • 无礼的批评,不是那些对开源投入巨大精力的工作者所应该承受的

希望以上自我警醒对阅读的你也有帮助

话不多说(已经说很多了),进入正题

试试水

首先,如果是想完全拥抱 Vue3.0 的新特性,那么在写法上和 Vue2.x 确实有很大的区别( Vue3.0会提供尽可能兼容 Vue2.x 写法的版本 )。

Vue2.x 的写法我就不赘述了,我们来看看,Vue3.0 的写法究竟差别在哪里: