服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服务器之家 - 编程语言 - JavaScript - React - 当别人因为React、Vue吵起来时,我们应该做什么

当别人因为React、Vue吵起来时,我们应该做什么

2024-01-09 14:24魔术师卡颂 React

Vue、React之间的讨论,即使是从技术层面出发,最后也容易陷入“React心智负担这么重,你们还甘之如饴,你们React党是不是傻”这样的争吵中。

大家好,我卡颂。

最近尤大的一个推文引起了不小热议,大概经过是:

  • 有人在推上夸React文档写的好,把可能的坑点都列出来
  • 尤看到后批评道:框架应该自己处理这些坑点,而不是把他们暴露给用户

当别人因为React、Vue吵起来时,我们应该做什么

尤大在推上的发言一直比较耿直,这次又涉及到React这个老对手,关注度自然不低。

再加上国内前端自媒体的一波引导发酵,比如知乎下这个话题相关的问题中的措辞是「怒喷」,懂得都懂。

当别人因为React、Vue吵起来时,我们应该做什么

在这样氛围与二手信源的影响下,会给人一种「大佬都亲手下场撕了」的感觉,自然会引来React、Vue各自拥趸的一番激烈讨论。

年年都是一样的套路,毫无新意......

面对这样的争吵,我们应该做什么呢?

首先,回到源头本身,尤大diss的有道理么?有。

React的心智负担重么?确实重。比如useEffec这个API,你能想象文档中一个章节居然有6篇文章是教你如何正确使用useEffec的么?

当别人因为React、Vue吵起来时,我们应该做什么

造成这一现象的原因有很多,比如:

  • Hooks的实现原理使得必须显式声明依赖。
  • 显式声明依赖无法覆盖useEffect所有场景,为此专门提出一个叫Effect Event的概念,以及一个对应的新hook —— useEffectEvent。
  • useEffect承载了太多功能,比如未来Offscreen的显隐回调(类似Vue中的Keep-Alive)也是通过useEffect实现。

当我们继续往前回溯,「Hooks必须显式声明依赖」是「React更新机制」决定的,而「React更新机制」又是React实现原理的核心。

本质来说,还是React既往的成功、庞大的社区生态让他积重难返,无法从底层重写。

这是历史必然的进程,如果Vue所有新特性都在Vue2基础上迭代(而不是完全重写的Vue3),我相信也是同样的局面。

所以,当前React的迭代方向是 —— 支持上层框架(比如Next.js、Remix),寄希望于靠这些框架的封装能力弥补React自身心智负担重的缺点。这个策略显然也是成功的。

回到这次争吵本身,尤大不知道React文档为什么要花大篇幅帮开发者避坑(以及背后反映的积重难返)么?他显然是知道的。

他如此回复是因为他所处的位置是「框架作者」,React是他的竞争对手。设想一下,如果你的竞争对手在一些方面确实不如你,但他的用户对此的反应不是“太难用了,我要换个好用的”,而是“一定是我用的姿势不对,你快出个文档好好教教我”

面对这样的用户,换谁都得有一肚子牢骚吧~

让我们再把视角转到「React的用户」(也就是我们这些普通开发者)上。我们为什么选择React呢?

可能有些人是处于喜好。但大部分开发者之所以用React,完全是因为公司要求用React。

用React的公司多,招React的岗位多,自然选择React的开发者就多了。

那么为什么用React的公司多呢?这显然是多年前React在先发优势、社区生态两场战役取胜后得到的结果。

总结

所以,我们需要尊重两个事实:

  • React心智负担重是事实。
  • 用React的公司多也是事实。

两者并不矛盾,他们都是历史进程的产物。

Vue、React之间的讨论,即使是从技术层面出发,最后也容易陷入“React心智负担这么重,你们还甘之如饴,你们React党是不是傻”这样的争吵中。

这显然就是忽略了历史的进程。

正确的应对方式是多关心关心自己未来的发展:

  • 如果我的重心在海外,那应该给Next.js更多关注。海外远程团队不是Next就是Nest。
  • 如果我的重心在国内,国内流量都被小程序分割了。一个长远的增长点应该是鸿蒙。

原文地址:https://mp.weixin.qq.com/s/iJfSINueLRxYBac0wprgmw

延伸 · 阅读

精彩推荐
  • Reactreact项目引入scss的方法

    react项目引入scss的方法

    这篇文章主要介绍了react项目引入scss的方法,本文给大家介绍了React pwa的配置方法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参...

    范天缘10742022-03-08
  • ReactReact事件节流效果失效的原因及解决

    React事件节流效果失效的原因及解决

    这篇文章主要介绍了React事件节流效果失效的原因及解决,帮助大家更好的理解和学习使用React框架,感兴趣的朋友可以了解下...

    Cleves11982022-03-06
  • Reactreact hooks入门详细教程

    react hooks入门详细教程

    这篇文章主要介绍了react hooks入门详细教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考...

    抱素_6942022-02-23
  • Reactreact基础知识总结

    react基础知识总结

    这篇文章主要介绍了react常用的基础知识总结,帮助大家更好的理解和学习使用react框架,感兴趣的朋友可以了解下...

    greet_eason8102022-03-08
  • Reactreact-native 实现购物车滑动删除效果的示例代码

    react-native 实现购物车滑动删除效果的示例代码

    这篇文章主要介绍了react-native 实现购物车滑动删除效果的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    程序猿tx4152021-12-31
  • Reactreact项目如何运行在微信公众号

    react项目如何运行在微信公众号

    这篇文章主要介绍了react项目如何运行在微信公众号,帮助大家更好的理解和学习使用react,感兴趣的朋友可以了解下...

    阿凡凡没有提11112022-03-03
  • ReactReact中使用setInterval函数的实例

    React中使用setInterval函数的实例

    这篇文章主要介绍了React中使用setInterval函数的实例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友...

    哈工大的许政7582022-02-23
  • React基于react后端渲染模板引擎noox发布使用

    基于react后端渲染模板引擎noox发布使用

    本篇文章主要介绍了基于react后端渲染模板引擎noox发布使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    suxiaoxin5952022-03-07