为什么感觉 Vue 的组件相对于 React 来说很少呢?

2020-12-08 22:18:17 +08:00
 SystemLight

使用 React 时候需要各种组件总是能搜出一大把,然后每个组件在 github 上面的 star 数量也很多,但是换成 Vue 以后总感觉找不到合适的组件,而且即便找到了也是不温不火的哪种,这是什么原因呢?

11956 次点击
所在节点    Vue.js
119 条回复
Kasumi20
2020-12-08 22:47:52 +08:00
因为 Vue 的设计有问题, 正常的开源项目都是一堆活跃的贡献者, 而 Vue 的贡献者几乎可以说只有一个人, 就很局限
murmur
2020-12-08 22:55:26 +08:00
组件少够用就行,前端讲究是门面,主题只是你的钢筋水泥,要自己写主题去装修,去设计,这些是组件没法给你的
murmur
2020-12-08 22:56:25 +08:00
而且很多库是不限制框架,纯 js 的,甚至是 jquery 的都可以用,不是你用了 vue 就必须得用 vue-*这样的组件
seki
2020-12-08 22:58:42 +08:00
因为 react 的历史更长,用 react 的人更多,中间也没有跨版本的不兼容问题,一个四五年前写的组件你现在用,一般只有一些用了老 API 的 warning,强行用还能用
iMusic
2020-12-08 23:02:00 +08:00
Vue awesome
anguiao
2020-12-08 23:04:37 +08:00
一些 JS 组件,自己随便封一下,也能在 Vue 里面用,所以不要把范围局限在 Vue 专用的组件。
Biwood
2020-12-08 23:14:25 +08:00
React 比 Vue 发布更早,很多概念都是 React 开发团队原创的,比如响应式数据、Flux 架构等等。同时 React 在设计哲学上更开放和自由,这一点在你写 React 代码的时候就能感受出来,基本上就是用纯写 JavaScript 代码的方式来写 UI 界面,这也使得相关组件和工具可扩展性很强。

而 Vue 相对比较一体化和人性化,它提供了大量轻松易懂的 API,写 Vue 的时候感觉就是按照某种固定的方式写配置就行了,基本不需要写那种很长很繁杂的 JavaScript 代码。同时,你想要的绝大部分工具已经由 Vue 开发团队帮你写好了,根本不需要自己动手。而且就算是缺少组件,基于 Vue 自己开发一个也不是很难的事。

当然两个框架的用户群体也有区别。React 因为强调编程思维,而且维护团队主要是欧美人,对开发者来说有一定的学习门槛。Vue 貌似国内用户更多一些,而且门槛相对较低,虽然用的人多,但是能够创造优秀工具的开发者并不多。
Cyanhall
2020-12-08 23:38:02 +08:00
Ant Design Vue + Vant 基本上常用的组件都齐了,冷门的自己封装下,从不觉得组件不够用。
abersheeran
2020-12-08 23:41:07 +08:00
@Biwood 前面尬吹 React 我就不说啥了,毕竟娱乐圈。最后几句话,自己就给自己扎了个金钱鼠尾辫。你自己心里有辫子,别扯上我们这些正经人。中国人创造优秀工具的能力弱了?只不过你这种跪族视而不见、见而不用罢了,你别把自己的菜推广到整个中国圈子。React 的入门难度在我眼里跟 Vue 差不多,甚至 Vue 对我来说更难一点,毕竟指令多,难背。

React 有大厂在背后,无论是影响力还是资金或是人员都是一流的。而 Vue 作为一个个人运营出来的项目,能达到这种堪堪并驾齐驱的地位已经很强了。论运营能力,youyuxi 比整个 V2EX 社区所有人加起来都强,不服的可以拎自己的项目出来看看影响力和知名度有没有 Vue 高。但纵然如此,个人的力量比起大公司,还是太弱,所以 Vue 弱于 React 根本不难理解。

虽然我个人也是更喜欢 React 一点,但是吹一踩一真的没意思。Vue 的组件并不少,虽然不像 React 那样,有很多公司看上 FB 的大牌子,跟着后面一起创造生态,但是业务里需要用到的东西完全都是能找到的,并且由于 Vue 的设计原因,接入传统的 JS 组件也是很容易的,我做一些小玩意的时候就喜欢直接整活,这一点上我感觉 React 反而差一点。
lihongming
2020-12-08 23:42:57 +08:00
除了 React 的存在时间比 Vue 长以外,主力用户群体也不一样。

Vue 在国内的热度远大于国外,而开源氛围国外又远好于国内。所以 Vue 的用户中有能力和意愿为开源社区贡献组件的也人比 React 少。
Zchary
2020-12-08 23:52:05 +08:00
娱乐圈里少了 Angular 的身影真好
ByZHkc3
2020-12-08 23:52:56 +08:00
楼上反应真大
no1xsyzy
2020-12-09 00:15:05 +08:00
@Biwood 再说亿遍,React 不属于响应式数据,看下 Svelte 作者的话。
@abersheeran Svelte 反而不如 rollup 出名……
@Zchary 等哪天 V2 上面扯前端娱乐圈,一个星期内没人提 Angular 我就学 Angular 了
前段时间迫于用户脚本不能引包,jQuery.html() 配合 template string 简直爽爆。
namelosw
2020-12-09 00:46:06 +08:00
一定程度上国内拿来较多, 回馈较少, 不过这个也在慢慢改变, 不是一天两天的事情.

另外一个上面没人说的重要原因是 React 做了很多函数式风格的 assumption, 导致 React 和其他库合作很难受, 比如 mutable data structure 和 DOM manipulation, 所以很多东西重新造个轮子反而更容易.

还有一个原因是 React 一开始只是一个 view 库, 留下 state management 和 router 等很多话题, 所以大家争先恐后把剩下的坑补上就能当明星了.
abersheeran
2020-12-09 00:46:37 +08:00
@no1xsyzy 技术(设计?实现?管它呢,是这么个意思)好和生态(基本等于名气)好,是两个基本不相干的玩意。前者靠开发者的技术水平,后者看运营能力。

在中国,运营能力最强的开发者,当属 Vue 之父。但他的技术嘛……我不信中国前端程序员的天花板是他。
royzxq
2020-12-09 01:02:06 +08:00
UI 的话,antd-vue / element-ui / iview 这几个基础的够你用了。
其它的话。 基本都是脱离具体框架的纯 js 实现库。

隔壁的同学这两天又基于 vue@2.6 + property-decorator 来开发了。 用惯了 react 之后再看 2.x 版本的 vue+ts 我都懵了
liberty1900
2020-12-09 04:51:08 +08:00
两种思维方式吧,西方喜欢极简,国人喜欢方便。官方说法 React 是个库,路由和跨组件状态管理都不内置。从官网风格就能看出来,因为 Facebook 有钱,官网除了偶尔支持下种族平等没什么广告,尤雨溪全职干开源,自然免不了接商业赞助。

接触过的后端大多喜欢 VUE, 他们不想深入细节,也不想理解什么 React 哲学,查 API 就完事儿了。由于 vue 的限制,反而代码容易阅读。不过 vue 的初学者友好也导致了太多不合格的开发者进入这个行业,甚至有的还很努力,努力的写烂代码。相比 Vue,React 自由,扩展性高,更适合大型,如果团队内有喜欢造轮子发明新模式的,后果就跟 Java 一样,本身不复杂,和各种乱七八糟的设计模式一结合就爆炸了。

React 依靠哲学,VUE 依靠 API 。各取所需
Biwood
2020-12-09 07:38:13 +08:00
@abersheeran
这怎么还吵起来了,我也没捧哪个框架啊,单纯是为了回答楼主的问题,顶多捧了一下技术水平高的开发者,这也有问题吗?服了,我老老实实回贴,写自己的使用体验,也要被拉进你们所谓的娱乐圈。看起来还伤到一些人的民族自尊了,我真不是那个意思。

Github 上两个框架点赞数不相上下,说明运营和用户基数不是问题。加上我自己招人的时候对两个框架的开发者做过的评估,才得出上面的结论。纯粹是我个人主观定论,如有冒犯还请见谅。
Cbdy
2020-12-09 08:18:24 +08:00
Vue 设计有问题
murmur
2020-12-09 08:21:18 +08:00
@Cbdy vue 设计最大的问题就是太人性化了,让 jquery 级别的程序员都能享受到很多优秀特性

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/733509

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX