使用vue或react全家桶写页面比jquery加bootstrap写页面的优势在哪里?

全家桶包括工程化那一堆东西了,
除了框架本身的迭代升级,还有es,ts等语法更新,感觉学习成本越来越高了
这么回想起来,
这么多企业选择vuejs技术栈或者react技术栈的意义是 什么?
抛弃jquery的理由是什么呢?

阅读 3.2k
6 个回答

其实这个问题本质上会涉及到 框架 与 原生+Dom库 这两种开发模式的比较,我们都知道:

  • 现代前端框架都是 声明式的,更新视图的方式是数据驱动
  • Jquery代表的原生是 命令式的,更新视图的方式是事件驱动

那么可以思考一下,数据驱动 相比 事件驱动 的优势是什么,在我看来有以下几点

  • 减少不必要的关注点。在 数据驱动 的开发模式下,开发者只需要关注 数据 的更新,所有的 更新视图 的命令式操作,都将由框架帮我们完成;而在 事件驱动 的模式下,往往既需要关注如何更新数据,也需要关注数据更新后哪些 DOM 需要更新,关注点更多,无法聚焦到业务逻辑
  • 可维护性更高,排查问题更容易。在项目上了一定的体量后,在单向数据流的限制下,排查问题只需要顺着数据的流向检查相关模块的数据,状态是否存在异常即可。而在 事件驱动 的模式下,如果没有规范约束,满天飞的 DOM 的操作将产生十分混乱的数据流,定位问题相当困难
  • 相对可控的页面性能。虽然用框架编写的程序,理论上性能方面会较低于极致优化后的原生程序,因为框架为了确定哪些 DOM 需要更新,无可避免的会做一些 Diff;但实际开发中,原生开发的程序不仅很难去做到极致优化,还会存在因开发者能力不同而导致的页面性能差异巨大的情况。因此,使用 框架 也能有效的降低这方面的差距,毕竟所有的 DOM 操作都由框架完成了,剩余的业务逻辑不太容易造成性能问题

最后,Jquery 作为一个优秀的 DOM 操作库并没有被摒弃,在很多场景下都能与框架共生

我觉得从可维护性和组件化的角度,这些前端框架相比jquery有很大的优势,总的来说是帮助开发者更快更好更规范的开发web应用。

其次如果是一个庞大复杂的项目,jQuery操作dom的可靠性和性能可能跟框架还是有一定差距的。另外移动端,这些框架都有比较好的原生解决方案。

我觉得在这些框架中使用jQuery中的工具类是jQuery现在比较好的定位。

更容易达成统一的开发规范,可以让代码组件化,写出来的代码更容易复用,可维护性也比jQuery高。同时框架的生态也更加活跃,减少重复造轮子。最最重要的是减少了开发人员的心智负担,开发中大型项目的体验比jQuery强一万倍

可以让你通过更多的简历筛选。
也许拿着 VueReact 能通过的筛选不会越来越多,但是仅仅拿着jQuery能通过的筛选肯定是越来越少的
技术上的直接优势反而在其次,都是领导或者公司享受的,在软件开发领域,开发效率的提高对办事的人而言未必是一个好事情。

简单来说,就是更方便了,性能也更高了。
jq的优点大概就是兼容和方便的api了,但是后面web的api也一直在改变,再加上es6的新特性,再加上移动端的兼容。
react/vue 它们用的都是虚拟dom,减少了dom的操作,性能会更好。而且他们的组件化开发很舒服。
jq是库,react/vue相比于jq它们更容易统一开发规范。

对于一个上个时代过来的人来说,一开始接触VueReact时确实会觉得为什么需要这样绕一圈去实现业务需求。
其实主要是上一个时代,前端的主要工作在于 绘制页面,一些复杂的业务其实都是交给后端来处理的,比如说用户登录功能、页面的路由以及一些复杂表单的工作。

使用 jQ 确实也可以用,但是操作 DOM确实会让人觉得很麻烦。因为很多的DOM元素都是按照数据去渲染出来的,就需要通过 ID或者ClassName 来实现选择,或者通过 addEventListener 来给新元素添加事件绑定。

主要和的核心是操作数据的同时,还需要操作DOM来配合着完成业务。这也是收到当时时代的限制,那个时候并没有纯前端这样的一个岗位,都是后端兼任的,比如说当时的 Phper。而因为当时页面并不是后端开发的,所以在一些业务功能和UI交互的绑定对于后端来说就会很麻烦,需要两个人一起协同开发才可进行下去。

VueReact 要解决的就是让开发者可以只关注数据的操作就可以完成业务,DOM 的操作交给框架来实现。而后端就不需要参与到这些前端层面的业务当中了,只需要提供接口就可以了。只要数据格式保持一致就可以很顺畅的完成项目开发。


当然一些展示类型的并且需要SEO的项目其实使用 php + html&jQuery 这样的技术站实现起来会更简单容易。但是对于一些复杂的后台管理平台来说,采用 Vue 这样的前后端分离开发会效率更高效一些,并不是说 jQuery 搭配一些UI库不能实现,而是相对来付出的开发成本会更高一些。

jQuery 也并没有被放弃,只是说现在会根据不同项目的业务需求去选择不同的技术栈,而不再是 jQuery 一把梭了,所以对于前端的技能要求也会越来越高。当然工资待遇也会越来越好,当时一个切图仔才四五千一个月开八千已经到头了,现在的初级前端找个好点的厂也有七、八千,并且三、四万一个月的岗位也很多。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏