提问内容

我看过非常多的人都这样说,我总结他们理由几乎都是react显得牛皮。有人能够给我真正去分析react做项目牛逼在哪吗,vue和react,我用vue多,我是觉得简单好用,做项目快,写同一个项目,react代码肯定比vue多,vue的一些操作都太轻便了,组件设计的好的话,每个组件代码很少,并且还是html,js,css分离看着十分清晰,我觉得react比vue方便的地方就是props

========

我反复看了几遍我的表述,好像没有说react一定比vue吊,或者vue天下第一,

都这么暴力了吗,能看清我的描述吗?我只是想听分析?不是和你们吵架,能不能正常点,暴躁老哥们,想吵架的人去贴吧,莫名其妙我就变成vue神教的了。

写代码写程序就是解决业务需求的,框架不正是为这个服务的吗?

我的眼里开发者就是为了让生活让工作变得更简单的,而不是更复杂,只要能解决需求,哪个简单用哪个(对我个人而言,我所做的项目用vue做的比react更快,所以我不懂为什么react比vue牛逼,我的工作没给我这种体验,所以我在提问,看清我的问题描述)

react和vue对我们不也应该是这样吗 让我们更方便更快速的做完需求,不论写什么代码,本质上大家不都是在调别的开发者的api,我这里的提问就是针对业务来说的,我想听分析,你可以拿你自己工作案例来说,我用完redux还有redux-saga的感受,vuex一行api就做到了,redux需要那么多繁琐的配置反而我还看到好多人在网上吹嘘react写起来多装逼。我买菜算个帐而已啊,我不需要还要去证明1+1=2啊

怎么有的人对框架搞的跟信仰一样了,我上面描述不就简单说我个人感受吗?大家干的项目可能都不大一样。你说你的感受就完了 非要和人刚什么

尤雨溪的回答

这个问题下面的很多回答太偏激了,其实我淡出知乎就是因为这类破事… 但是作为作者还是认真地说一说吧,希望能以后别再有这种问题了。

这里我可以大方地承认,如果多年以后要论历史地位,React 肯定是高于 Vue 的。事实上,我作为一个开发者,也是由衷地佩服 Jordan Walke, Sebastian Markbage 这样的,能从开发模式层面上提出突破性的新方向的人。

React 从一开始的定位就是提出 UI 开发的新思路。当年 Pete Hunt 最开始推广 React 的时候的一句口号就叫 "Rethinking Best Practices",这样的定位使得 React 打开了一些全新的思路,吸引了一群喜欢折腾的早期核心用户,并在这个基础上通过社区迭代孵化出了许多今天被 React 开发者当作常识的 pattern。这是 React 伟大的地方,Vue 里面也有很多地方是直接受到了 React 的启发。React 敢做这样的尝试,是因为它是 Facebook。这样的体量的公司,在 infrastructure 层面获得质的提升,收益是巨大的,而且 Facebook 的工程师们足够聪明又要靠工资吃饭,改变他/她们的习惯并不是什么问题。而对外推广,则是一种大公司才有的 “改变业界” 的底气。

Vue 从一开始的定位就是尽可能的降低前端开发的门槛,让更多的人能够更快地上手开发。我以前也说过,开发 Vue 的初衷不是为了搞个大新闻,只是做了个我自己用得舒服的框架。我虽然也在 Google 这样的大公司呆过,但骨子里是一个喜欢自由的人,也一直觉得独立开发者很酷(这也是为什么最终自己也成了一个独立开发者)。很多时候我更希望自己做的东西能帮到那些中小型企业和个人开发者。举个例子来说,美国传统行业里有很多 small business,它们不像大公司那样有专门的 IT 团队来信息化整个流程,很多只能雇一个普通的 contractor 程序员,有些甚至是老板自己兼职研究代码。我收到过好几封这样的感谢信,说因为 Vue 让它们多快好省地做了个内部应用,解决了实际问题,这样的故事是让我觉得特别爽的。

做 React 这样的不迎合用户,而是试图改变用户的设计需要有足够的本钱:你得有足够的资源和背景去强行越过初始推广的那个陡坡。事实上,如果没有 Facebook 作为 React 的推广者,React 很可能最终是一个有着忠实用户群体的小众框架(比如 Elm)。作为一个个人项目的 Vue 没有这样的宣传资源,也并不是为了改变用户。所以从设计的角度上来说,Vue 首先考虑的是假设用户只掌握了 web 基础知识 (HTML, CSS, JS) 的情况下,如何能够最快理解和上手,实现一个看得见摸得着的应用。

一个 API 看得顺不顺眼,用得舒不舒服,很大程度上取决于你跟一个技术的核心用户群体的重合程度。编程语言之间喷来喷去还少么?大家都是图灵完备,然而此之蜜糖,彼之砒霜。Vue 的 API 设计固然有可以商榷的地方,但 React 也不是完美无瑕,不然也不会从 mixins 到 HOC 到 render props 一次次地折腾,更没有 hooks 什么事了。直到 Suspense 出现前,也不存在什么只有 React 才能做到的事情(顺带一提,有意思的是 hooks 基本上废掉了过去大部分基于组件的逻辑抽象模式,抹掉了 JSX vs. 模版的一个优势,也完全可以用在其他框架里,连 Angular 都已经有对应的原型实现…)然而 “不完美” 并没有妨碍在过去的几年内大量的用户用各自选择的技术做出实际的产品 —— 从 State of JS 近两年的数据来看,两者的满意率是差不多的,都在 90% 出头,说明两者在 “满足目标用户的需求” 这个衡量标准下,表现是差不多的。可维护性、可读性、优雅程度、生态这些东西嘴上怎么辩都可以,还是数据比较实在。

再说说具体技术层面:从加载速度、运行时性能来说,两者目前综合各种场景应该说是没有什么质的差别。硬要说的话,Vue 在 update 性能优化方面需要的心智负担可能少那么一点 —— React 如果不注意,容易导致过多的组件无用 diff,但是实际上真正会遇到性能瓶颈的应用也是少数… Vue 3 会比 Vue 2 快不少,加上模版编译还有一些可进一步发掘的优化空间,所以性能上会比现在的 React 有一定优势,但 React 那边也在研究基于 prepack 的编译时优化,这个也是挺值得期待的。Vue 3 对于 TS 的支持会有很大改善(包括 TSX),我们也在计划对模版做更好的 IDE 支持(比如补全、类型检查),现在没有不代表以后不能有,有批评我们改进就是了。其实过去大半年 Vue 本身没有什么大更新是因为精力都放在工具链上了,接下来又要回到核心上了。React 那边 time slicing / Concurrent mode 要明年 Q2 才稳定,那个时候应该 Vue 3 的 time slicing 应该也稳定了(原型已实现)。Suspense 在 data-fetching 稳定之前并没什么大用(要 2019 年中),这期间我们也会研究解决同类问题的方案。所以从纯技术层面来说,React 现在比 Vue 牛逼么?不好说。以后一定比 Vue 牛逼么?也不好说。

使用数量方面,有很多文章拿各种数据来比较,有的是 GitHub stars,有的是 npm 下载量,有的是 Google trends,有的是 StackOverflow 的问题数量… 其实这些数据都有很明显的问题,那就是它们跟实际使用者的数量并不一定是正比,会受到其它因素的影响,比如 GitHub stars 跟实际使用没有直接关联;使用者中使用 CI 的比例会影响 npm 的下载量;Google trends 很难完美过滤掉 React 这样的常见词汇的 false positive;文档和本身的上手难易程度会影响 StackOverflow 的问题数量,等等… 所以我自己一直是以 Chrome 开发者插件的使用者数量作为一个比较可靠的数据,因为它的关联度是最直接的,潜在的干扰因素也是最少的。目前 Vue 的开发者插件用户数量约为 70.4 万,而 React 是 136.3 万,大致可以作为参考。React 的使用量还是有明显优势,不过这个数字比起两年前已经很不一样了 —— 那时候大约是 1:7 的比例。从增速来看,Vue 是要快一些的。

说了这么多,无非是希望大家能停下来想想所谓的 ”A 技术比 B 技术牛逼“ 背后到底是在争些什么,我们使用这些技术的初衷又是什么。很多时候你说这方面,他说那方面,鸡同鸭讲,即使说到一起去,也往往缺乏对等的信息量或者基础共识,只是各自表达主观看法,最后变成两个阵营各自抱团取暖… 说到底,就算你证明了 A 比 B 牛逼,也不意味着你或者你的项目就牛逼了… 比起争这个,不如多想想怎么让自己变得更牛逼吧。

尤雨溪:React 是不是比 Vue 牛,为什么?相关推荐

  1. 尤雨溪自述:打造Vue 3背后的故事

    尤雨溪在今年年初Vue 3正式发布之前撰写了这篇长文,详述Vue 3的设计过程.前端之巅将全文翻译如下,希望能帮助你更好地了解Vue 3背后的故事 在过去的一年中,Vue 团队一直都在开发 Vue.j ...

  2. 尤雨溪告诉你为什么Vue比yox优秀

    2019年6月8日来自全球各地的开发者齐聚上海交通大学文治堂,VueConf 2019 在上海成功举办. VUE 3.0  最新进展 更快 使用 Object.defineProperty -> ...

  3. 尤雨溪回应:为什么 Vue 在国际上越来越没影响力?

    来源: https://www.zhihu.com/question/472193255/answer/2235015723 前段时间,知乎上一条「为什么 Vue 在国际上越来越没影响力?」的问题火了 ...

  4. Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?

    1. 前言 大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12,长期交流学习. 之前写的<学习源码整体架构系列> 包含jQuery.underscore. ...

  5. 尤雨溪-写一个mini vue

    render 主题: render 解决问题: 1.h是什么?有什么用? h是hyperScript. 作用: 使用JS去写html.因为html最后也是render成JS 1,when to use ...

  6. 尤雨溪携手字节前端专家,畅聊 Vue 3.0 前端技术新趋势

    前端这个技术领域,在应用化以后,涵盖的内容越来越广--纯表现层.应用实现层.应用架构层.基础设施层到改进开发范式的理念层,都有太多可以去钻研的技术点,衍生出了无数前端开发的发展路线."别更新 ...

  7. 尤雨溪亲自回应Vue.js涉及国家安全漏洞问题

    最近,有两幅关于 Vue 安全问题的截图在业界广为传播,截图内容表明目前有多家公司统计软件开发过程中使用 Vue.js 和 SonarQube 的情况,疑似有黑客利用 Vue.js 和 SonarQu ...

  8. Vite 与 Vue Cli 对比 - 尤雨溪: Vite 会取代 vue-cli 吗?

    本文完整版:<Vite 与 Vue Cli 对比 - 尤雨溪: Vite 会取代 vue-cli 吗> Vite 与 Vue Cli 对比 一.Vite 与 Vue CLI 是什么? Vu ...

  9. Vue 3拖更,尤雨溪介绍最新进展

    Vue.js 作者尤雨溪近日介绍了 Vue 3 的最新进展. 尤雨溪表示,由于在 Vue 3 上花费的大部分时间都投入到了设计和构建稳定的内核上,不过要让整个框架处于"ready" ...

  10. 专访Vue作者尤雨溪:Vue CLI 3.0重构的原因

    1.为什么要对 Vue CLI 进行大规模修改? 尤雨溪认为旧版本的 Vue CLI 本质上只是从 GitHub 拉取模版,这种拉模版的方式有几个问题: (1) 在单个模版里面同时支持太多选项会导致模 ...

最新文章

  1. android技术内幕心得
  2. java return用法_Java枚举的高级用法之多键值的映射使用
  3. GNU make manual 翻译(五十八)
  4. for 创建一个方法:键盘录入一个数 ,求它的 阶乘 及 阶乘的和
  5. 从当前元素继续寻找_云漫圈 | 寻找无序数组的第k大元素
  6. P1977 出租车拼车
  7. Web前端笔记-two.js实现坐标定位(动画效果非瞬移定位)
  8. 博途数据类型wstring怎么用_解析博图数据块(昆仑通态触摸屏自动命名)
  9. 《深入理解并行编程》中文版
  10. layui 如何清空form表单
  11. FFmpeg源代码简单分析:configure
  12. 2021-08-08三大范式与JDBC
  13. 请问,非计算机专业,只为软考中级,哪一种最容易过?
  14. html5 图片命名,html5 css命名规范
  15. manjaro yay查找搜索软件包
  16. 弘辽科技:提升销量没流量要继续提升吗?如何提高店铺流量?
  17. 【渝粤教育】广东开放大学财务会计2 形成性考核 (34)
  18. 小程序 - 折线图画法
  19. 华南理工章熙春:移动应用推动数字校园
  20. 如何写好论文的研究局限性

热门文章

  1. OSI七层模型简单介绍
  2. 安卓基本控件与布局的使用
  3. 营销形式改革,酷开科技激发OTT大屏营销价值
  4. Jetson Xavier NX——CPU/内核为OFF状态,开启方法
  5. 上位机开发(怎么开发上位机)
  6. 优雅的 Python 动态图工具
  7. 世界卫生组织推荐治过敏性鼻炎首选药
  8. 电脑出现插入耳机无法使用
  9. 从0开始学模拟挂(一)--找内存基址,包含原理
  10. 安全不“放假”,VR安全教育等你沉浸式体验