前端框架技术选型讨论

2022-10-26 15:39:12 +08:00
 variousdidt

vue 对比 react:

对比 vue2 和 vue3 ,vue3 的组合式 API 无疑是更好的选择,以下优势针对于 vue3 版本而言; react 也仅指使用 create react app 方式构建的项目

  1. 使用 vite 搭建 vue3 项目框架,自带路由管理,sass ,less 支持的很好,yarn 装一下包即可使用,无需多余配置; react 需要手动配置各种 loader
  2. 组合式 API ,逻辑抽离方便,不再受限于生命周期函数; react 也可以做到
  3. vite 使用Rollup打包,速度大幅优于 webpack ,开发体验更好; react 大多使用 webpack ,打包速度一般
  1. vue 不支持 IE11(reactive 使用的是 Proxy ,IE 全系不支持),react 进行相关配置后支持 IE9-IE11
  2. vue TS 支持不够好; react 天生支持
  3. vue2 升级 vue3 有代价,社区相关轮子未必及时适配; react 社区活跃度高,大版本升级更早,适配大概更全

总的来说,react 就是 f(state) = UI ,仅仅是一个 UI 框架,其他的交给开发者自己配置;而 vite 生成的 vue 项目是一个功能更全的脚手架,帮开发者做了很多其他事(比如路由)。

8986 次点击
所在节点    程序员
72 条回复
nikolai
2022-10-26 15:47:41 +08:00
要比就 Vite 跟 Next ,Vue 跟 React 比,不能这么玩田忌赛马

还有都快 2023 了 ,不要再用 CRA ,Next / Remix 什么的不用服务器渲染的话也就可以当 CRA 用
233373
2022-10-26 15:48:30 +08:00
react+1
variousdidt
2022-10-26 15:51:35 +08:00
@nikolai vue 官网推荐使用 vite ,react 官网推荐 cra ;确实是后台,无需 ssr ,这点没说。next 用过,确实很快,但是 next 应该和 nuxt 讨论吧
variousdidt
2022-10-26 15:54:30 +08:00
@233373 +1 ,我也是一直 react ,但最近维护了 vue2 ,看了 vue3 ,vue3 很好,但我暂时只敢玩玩
sjhhjx0122
2022-10-26 16:14:43 +08:00
构建工具就构建工具之间比,既然 react 是库就应该跟 vue 比首页白屏,渲染速度,写法优劣,而且 react vite 起个项目也很快啊,说实话真写大项目我宁愿用 angular 。小项目活动页 svelte ,solidjs 写起来真的比 react vue 强
Akitora
2022-10-26 16:15:13 +08:00
here we go again
heishu
2022-10-26 16:22:04 +08:00
抛弃 vite 吧,turbopack 构建更快
wu67
2022-10-26 16:22:57 +08:00
vite 和 webpack 相比, 也就本地开发的时候快一点吧, 构建的话, 目标一致的时候, 其实时间差不多, 反正我个人感觉是这样的. 题外话, vite 也可以用来调试构建 react......

vue2 升级 vue3 基本上是破坏性更新, 尤其是加入 ts 的话, 基本相当于整块业务的代码重写了, 还有包装取值的.value, 简直让人脑壳疼.

至于框架, nuxt next 我个人觉得都是对应 vue/react 的强约束实践, 你喜欢 /跟你团队风格接近的话, 就会感觉很舒服, 反而则会觉得很难受.

生态方面, vue 官方有给出非常完善的解决方案, 基本开箱即用.
react 的 cra 相当于一个非常基础的‘启动器’, 可能小心翼翼的额外增加部分可选的配置, 并且配置范围也有限, 一些三方的配置轮子大多有一个巨大的问题, 更新周期过长, 甚至有些两三年没更新了.

还有另一个让人难受的点, 就是 react 的各种生态有点分裂, 缺少一个一统江湖的轮子, 或者轮子是有自己的想法.... 例子就是, react-router, 不止 router, 还带着 http req... 另一个是状态库, redux recoil 等等等好几个轮子各方乱战...还有就是 antd, 整体功能都有, 各种小细节上让开发者难受, 就没考虑过 DRY
xieren58
2022-10-26 16:25:48 +08:00
solidjs
variousdidt
2022-10-26 16:25:51 +08:00
@wu67 很同意
variousdidt
2022-10-26 16:27:44 +08:00
@heishu 宣传说比 vite 快 10 倍,被 Evan you 反驳了
renhou
2022-10-26 16:30:20 +08:00
自己开发,哪个用的顺手用哪个
公司开发,根据公司技术栈,成员能力决定
特定需求,必须用这个库,必须支持 xxx ,那就以需求为导向
找工作,最好一个很强另一个也不差

vue 和 react 各有各的特征和局限性,关键取决于你要拿它干啥解决啥
kkkyrieliu
2022-10-26 16:34:20 +08:00
看团队。以我目前的经验,vue (自动挡)确实会帮助团队更好招人
FightPig
2022-10-26 16:35:53 +08:00
vite 用了阵挺好用的,但总有时会有些问题,比如 hmr ,动不动就没用了,比如你自己写个组件,然后做成 npm 包,打包进项目,运行都没问题,也不报错,但 hmr 没用。后来一点点排查发现是 vuedragable 造成的,去掉又好了。
murmur
2022-10-26 16:38:03 +08:00
vue2 可以做 IE 兼容,没毛病
wunonglin
2022-10-26 16:41:39 +08:00
比来比去,不如直接用 Angular ,全套不用想那么多
variousdidt
2022-10-26 16:46:55 +08:00
@murmur vue2 可以,但是 vue3 组合式 API 个人感觉用过就不会愿意用生命周期的方式了
ccyu220
2022-10-26 16:51:12 +08:00
天天月经贴没意思

1 、有选型能力,React 的生态什么都能满足
2 、快速出产品,Vue 全家桶,你选型的时候我项目都写完了
3 、Vite 和 CRA ,一般的项目速度没必要分的这么细,况且 Vite 快速上手,为什么不用。
4 、都快 2023 年了,你可以说它的 TS 实现没有 React 那么简洁(例如 Props ),但没必要说 Vue 对 TS 支持不好
5 、Vue 版本都发到 3.2.41 了,还说 vue2 升级 vue3 有代价

这种现成的东西难道不是看自己选择吗,别人说的就能影响你的决策?

比如我,首选肯定是 React ,并且是 next.js 。

但是你做公司的小项目,照顾所有人能力上下,那 Vue 全家桶是不是就是更好的选择?

不管是上面那两个和 Angual 、Solid.js 、Svelte ,还是 Next 、Nuxt ,或者 Vite 、Webpack 、刚公布的 Turbopack

潮流向前,工具永远是适时而用
wangxiaoaer
2022-10-26 16:55:04 +08:00
我以前天天黑 ng ,最近把 ng 的最新文档又过了一遍觉得真是香,可惜团队都是 vue 一把梭。
zhwithsweet
2022-10-26 17:59:58 +08:00
https://github.com/fisand/vite-wagmi-starter 求个 star

现代 Dapp 前端模版

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

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

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

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

© 2021 V2EX