我们为什么会放弃JQuery而选用 Vue/React/Angular 进行开发
JQuery, 曾经从事网页工作者的标配, 以前还没有前端的概念, 但不懂JQuery几乎是会被嘲讽的. 而当下的使用量却逐年降低, 更多的用户转向新兴的 React/Angular/Vue . 今天我们来聊聊, 相比JQuery成熟庞大生态圈, 为什么我们现在开始逐步的放弃 JQuery.
前言
截止至笔者写这篇文章为止(2018.1), 前端开发的大趋势主要是以下几点:
- 旧浏览器逐渐被淘汰(比如IE8及以下, 主流框架已经放弃了支持)
- 移动端需求的增加
- 用户体验要求变得更高
- 前端架构从传统的后台 MVC 向 RESTFul API + 前端 MV* 迁移
众所周知. JQuery只是一个DOM和ajax的封装库. 现在前端项目的日益发展导致JQuery已经不足以承载太多的复杂项目了. JQuery能兼容各种低版本的浏览器这一大优势也在旧浏览器淘汰的路上逐步减弱. 越来越多的开发者开始拥抱新型框架, 它们使前端不太需要关心DOM了, 只需要关心状态.
Vue
因为我目前主要使用的是Vue的技术栈, 就来说说为什么要选择 Vue 吧.
首先, Vue.js是一个库, 并不是一个真正框架(或者说是一个UI层面的框架). 它相比其他两个主流框架 (React/Angular) 来说 Vue 的学习成本相对来说会比较低. 其次 vue 的作者是国人尤雨溪 因此它对中文的支持会更友好一点(说句题外话, 偶尔能看到有老外吐槽. Vue.js的源码偶尔能看到中文的注释2333).
Vue是渐进式框架, 它主要关注的是视图管理. 其核心思想主要是数据驱动和组件化. vue的优势主要有以下几点:
-
侵入性低
不对整体构架做过多约束, 方便与其他库或是已有的前端技术栈整合. 比如说当前的项目就是在使用JQuery, 我们也可以将项目移入vue里, 然后逐步的进行改良. -
vue鼓励模块化
因为组件系统是 Vue 的另一个重要概念, 因为它是一种抽象,允许我们使用小型、独立和通常可复用的组件构建大型应用. 这将有利于将界面代码自然分割成更容易维护的模块. 简而言之就是模块化开发, 减少代码的重复性和提高复用性.
vue.js比较推荐的是基于commonJs的一个模块方案. 通过webpack这样的模块构建工具, 将一个组件的模块, css和js都写在同一个文件里. Vue本身也有自己脚手架叫做vue-cli
, 通过脚手架来帮助我们自动构建项目, 再使用npm进行包管理也是使项目模块化的一种. -
Vue的语法糖和各种修饰符使得编写JS变得更加的容易. 同时使用一些依赖库, 比如
babel
使我们能大胆的使用ES6的语法糖. 原先需要封装一个函数的命令, 现在只用一句代码就能解决了. 大大的提高效率. -
Vue也有自己的生态系统和一个活跃的社区.
后记
JQuery作为曾经的霸主, 现在市场使用的份额仍然不小. 原因主要是一些老旧的项目仍然在使用着. 其次, 有些时候我们也会遇到需要频繁操作DOM的场景, 再加上JQuery庞大的生态圈. 有很多完善的插件仍然可以使用. 因此, JQuery虽然过时了, 但在未来几年中, 也必然还会有它的份额存在.