京东云开发者|关于“React 和 Vue 该用哪个”我真的栓Q( 五 )

  • 在项目优化中 , 由于React的更新特性是自根节点开始不断递归对比虚拟dom去查找变化,如果不进行手动优化,那么将导致每层组件都会重新调用render , 在大型项目中可能就是性能灾难,所以React官方提供了很多专门用于优化的 API,比如shouldComponentUpdate、PureComponent、React.memo等 , 致使在日常工作中,开发者在思考业务逻辑的同时,还要考虑性能优化,无法专注于业务本身 。而Vue则因为天生具有依赖收集的优势,对于数据的变化更敏感和准确 , 开发者即使不刻意关注优化,Vue也能提供给你不错的性能 。
  • 说Vue重的,其实大多纠结在API数量 , 需要记忆的东西多,并且如果使用了Vue3,那就又会发现Vue3里不论是 setup 写法 , 还是API的更新,都有了翻天覆地的变化,于是发现要记忆的东西就更多了 :cold_sweat:
    但是这几点对于有经验的熟练框架使用者来说 , 常用的API其实很固定,也往往就是那么几个,对于新入门的小伙伴,千万不要产生劝退心理:grimacing:
    10. 社区生态
    • 全球开发者使用框架占比调查 , 数据来源于 Stackoverflow 的 58,743 名受访者,截图中未完全列出所有看框架的排名,点击链接查看 , React 相较Vue牢牢占据着第二把交椅 。

    京东云开发者|关于“React 和 Vue 该用哪个”我真的栓Q

    文章插图
    截止到 2022年6月23日 的一些数据
      • npm 周下载量:React:15,764,543 次Vue:3,279,362 次
      • 在 Stackoverflow 上关于 #reactjs 标签的问题讨论有 396,378 个,而关于 #vue.js 的有 94709 个
      • 在 Github 上,Vue的 Star 数为 197K,已经超过React的 190K
      • 另一方面,通过来自 similartech 的数据显示,React 被应用在了 1,256,598 个网站中,并仍在以每月 0.59% 的速率增长,而使用Vue的网站有 296,047 个 , 每月增长速率为 0.87% 。

    京东云开发者|关于“React 和 Vue 该用哪个”我真的栓Q

    文章插图

    京东云开发者|关于“React 和 Vue 该用哪个”我真的栓Q

    文章插图
    11. 开源代码许可协议也叫软件许可证,具体解释可以查看维基百科,下面说重点 。
    • React 是 Facebook 的开源项目,Facebook 在2016年11月强化了 BSD 许可证和专利许可证的概念,在对许可证书授权方和被授权方而言,存在待遇上的不对等性,这就带来一个很关键的风险点:使用 React 的公司和 Facebook 一旦存在业务竞争,React 将成为 Facebook 获得诉讼胜利重要筹码 , 这无形之中将给竞争公司带来法务风险,虽然 React 后来把开源协议改成了 MIT , 但是前车之鉴,在某些重大项目的技术栈选择上,尤其在当前国际环境的斗争中还是要慎重考虑,并充分告知本公司潜在的风险 。
    • Vue 是由国人尤雨溪开发,软件协议为 MIT,目前在国内起码畅快使用是没问题的 。
    • 关于开源协议的解释可以查看百度百科
    三、总结:做个了断终于到结尾了,关于React和Vue的选型,我们来做个总(liǎo)结(duàn)吧 。
    1. 在选型前,首先是要考虑历史因素和团队现状 , 切换技术栈的前提是不要显著的增加上下游合作方的时间成本 。
    2. 充分考虑框架的兼容性,如果不满足业务需求,再优秀也要 pass 。
    3. 对于新手来说,React过于灵活,虽然常用API不多,但是里面有很多设计模式和概念,在具备一定规模的项目中,新手的学习曲线一开始会比较陡,并且需要代码手动优化,同时庞大的社区中有层出不穷的优秀框架,但是在同类型库的选择上也会相对吃力,所以不推荐新手使用 。但是对于具备几年经验的开发者来说,React 的灵活也恰恰是优势,再结合各种设计模式,很容易使项目更具创造性,对于维护具备一定规模的项目很有益处,这也真正能体现开发者的编程能力 。
    4. 而Vue则恰恰相反,对新手友好,SFC 中 HTML、script、style 相互隔离的方式更符合传统的前端开发逻辑,Vue 也已提供了基本的优化,且周边框架的选型也不需要过多关注 。
    5. 关于是否适合大型项目,有人说Vue不适合大型项目,适合大型项目的一定是React , 笔者并不这么认为,如果Vue3还没出,那么受制于Vue2的 Option Api,Vue在大型项目中多少会有影响,主要体现在逻辑复用和代码组织上,但是Vue3有 setup 模式下 Composition Api 的加持,Vue 也已足够灵活,笔者认为关于“Vue 不适合大型项目”的论调可以休矣,在Vue和React特性越来越趋同的今天 , 如果依然出现这种想法,那可能更多还是**“人”的问题** 。这里还有一个有意思的小插曲 , 笔者曾经和朋友聊天聊到Vue和React,谈到他对这俩框架的看法 , 当时他说的话令我印象很深刻,他说“React 项目要想写好 , 会比同规模的Vue难一些,但是React要想写坏,那可太容易了”,截止到目前 , 我对这句话仍深以为然 。

      推荐阅读