Vue.js是计算机发展的趋势使然

计算机的历史总是遵循分久必合合久必分的趋势,最开始Web前端硬件和浏览器的性能不够,为了用户体验和性能,开发者会选择像 Rails 类似的框架 来进行服务端模板渲染以提升性能,但是服务端模板渲染的技术弊端是,当前端界面复杂度达到PC软件的规模时,界面的调整太依赖于后端和DOM结构树的查询节点树,一旦要更新页面布局和设计时就需要后端改动一下,前端也改动一下,一旦前端界面大改时,JQuery这种依赖模板和DOM查询节点的方法就会很被动,因为界面布局和结构发生巨变时,DOM节点查询链条很容易断裂,代码也不敢轻易变动和删除,导致项目越久,代码冗余越多,项目也变得很难维护。

Vue.js 主要解决的问题是,整个前端的界面修改都是在浏览器中完成的, 服务端只用提供API即可,而且界面整体逻辑是通过属性来动态绑定的,界面布局调整的JS代码并不依赖于DOM的节点查询,如果需要修改界面布局和设计时,只用大胆的调整前端模板和CSS样式即可,JS逻辑和后端代码都不用配合修改,整个界面改动的负担很小,可维护性也非常好。

原来学Rails的时候,对Vue.js和React的技术抱有偏见,很多Web的开发者总是争论到底是后端服务渲染好,还是Vue.js这种前端框架好?在我看来,任何撇开时代背景和用户需求的技术讨论都是个人喜好性质的讨论。

从总体来说,用户肯定希望界面交互越复杂越精致越好,不论后端渲染还是Vue.js这种前端框架,从理论上都是可以满足用户的计算需求的,只是Vue.js这种前端框架把真实的计算逻辑和界面布局给完全分开了,当快速迭代产品设计和交互体验时,Vue.js的更新和维护负担更小,成本更低的改动就意味着生产力和竞争力。

所以Vue.js这种前端框架的大行其道,并不是技术框架在技术层面的谁优谁劣,而是Web终端硬件性能提升和用户对Web应用功能期待的一种自然而然的演化行为,虽然Vue.js/React这种技术有很多技术细节和优点,但是从架构设计上来看,其实当今的Web技术又回到微软时代的那种前后端分离的技术,架构上是没有区别的,只是Vue.js相对于MFC、Gtk这类的技术,通过属性绑定和动态DOM的技术能够更有生产力的编写前端界面。

Vue.js 的优点

对于我这种非常熟悉Gtk/Qt的开发者来说,我更喜欢Vue.js这种前后端分离的设计,因为前端的修改非常有效率,实时可以看到最新的界面效果,同时后端也可以做的很薄,后端从模板构造和服务的泥潭中解放出来,后端可以更专注于后端架构设计、工程化运维和性能优化。

Vue.js 的优点主要有以下几点:

  1. 通过属性绑定和DOM Tree Diff更新的技术来实时渲染Web界面,前端开发生产力非常高
  2. Vue.js的作者是国人,中文文档写的非常好,我想这也是Vue.js在中国非常流行的原因,官方的文档看一天即可入门
  3. 内置 VueRouter、Vuex全家桶,包括 vue-cli 的发布,真正做到开箱即用,不用折腾各种插件和让人绝望的Webpack配置即可快速把精力投入到产品开中
  4. *.vue 文件一体化的设计,模板、JS代码和CSS样式,一个组件一个文件,非常好维护
  5. 插件生态非常好,常用的各种插件都有Vue的版本,npm或者yarn都可以快速实验插件功能

via https://manateelazycat.github.io/web/2019/07/14/vue-tooltips.html

Vue.js有什么优点,为什么会流行?
标签: