Vue 入门
Vue 的文档非常棒,尤其还有中文版,学习起来轻松愉快。
这里我也不再重复官方已有的内容了,大家自己看就好。说一下我理解中,从 jQuery 向 Vue 转换时需要注意的东西。
1. MVVM 对数据的抽象
jQuery 里几乎没有数据抽象。你面对的就是一个虽然错综复杂,但是总能找到联系的 DOM 树,只要你有耐心,总能把它改成你想要的样子。
MVP 就抽象出数据层和视图层,但是还要我们手动更新视图;MVVM 比 MVP 的抽象更进一步,只要操作数据。所以我们必须要理解它的抽象,并且习惯它的抽象。
在这个体系里,我们应避免直接操作 DOM,因为一切都是数据的映射。举个例子,一个新闻列表,在传统开发模式中,是无数个 DOM 操作的结果;而在 Vue 里,就是通过模板把数据映射成 HTML。对后台类产品而言,这很好理解也很好实现,因为后台可以抽象成用户与数据的交互,然后还原成数据的展示和修改,继而直接对应到屏幕上的组件上。
在写 Vue 应用的时候,我们需要注意,哪些数据是业务数据,即要拿来跟后端数据进行交互的;哪些数据是界面数据,即用来切换页面状态,和业务无关。但是基本上,我们不需要直接操作 DOM。
2. 组件复用
组件是 Vue 最值得注意的强大特性。组件化和组件复用将大大提升我们的开发效率。
使用组件主要有两种方式:
- 注册全局组件。这种方式很简单,有点类似 jQuery 插件,我们只要引用组件就好,然后就可以在模板中使用特定的组件标签。比较适合已有项目,可以在不怎么改动的前提下接入应用 Vue。
- 使用局部组件。这种方式要复杂一些,而且也有几种不同的实现,如果同时要加载组件模板和组件样式,可能还要用 webpack + vue-loader。
因为这篇文章就是“渐进式改造项目”,所以根据项目现状选择合适的方法很有必要。
3. ES6 与生态
这个其实不是 jQuery 和 Vue 的差别,只是在眼下这个时间点,ES6 已经实装到绝大部分浏览器里,所以我们无论是看文档、看教程都会看到大量 ES6 的内容。至于整个前端生态,基于 Node.js 开发的各种工具也已经普及到方方面面,使用 webpack + 各种 loader 已经成了默认功课。
所以,那个用 <script src="/path/to/jquery.js">
引入 jQuery,然后就可以在页面当中任意使用 jQuery 相关技术的年代,其实已经过去了。