关于前端对 ng , vue , react 的选择

2018-04-13 09:58:48 +08:00
 shenqi
最近收到一堆初中级的前端简历,无一例外,三大框架都说去了解或者使用过。

这中间,很大的比例都是使用过 vue 为主,其次是 ng,比较少就是 react。我个人倾向于 react 为主。

这么大的一个趋势到底是怎么造成的?
11071 次点击
所在节点    程序员
92 条回复
zzl
2018-04-13 10:05:37 +08:00
vue 上手容易啊
Akkariin
2018-04-13 10:05:58 +08:00
vue 简单易上手中文文档好,ng 算是 vue 的全家桶版全面了解需要时间,react 嘛 fb 自己作死。。
natforum
2018-04-13 10:06:46 +08:00
vue 懒人专用,个人比较倾向 react
liuzhaowei55
2018-04-13 10:08:51 +08:00
先说结论:vue 有中文文档,vue-cli 脚手架好用,没有上手难度。react 对于我个人有一定的上手难度。
我做后台开发偶尔会写一点前端的页面,ng 火的时候接触过,但那个时候前端页面写的不是很多,没有过多的了解,之后有需要的时候,就接触到了 vue,期间也了解到了 react,但是 vue 的中文文档,vue-cli 脚手架,还有 html,js,css 三个用标签分开同时写到一个文件里的这种方式,让我从传统的 html 过渡过来,真的是毫无压力,上手也很快。
再之后开始了解 react 是因为 react-native,还有 ant-design 整体来说 react 对于我来说上手难度比 vue 高了很多,现在主要使用的也还是 vue。
shenqi
2018-04-13 10:09:24 +08:00
个人非常不习惯 VUE 的写法,组件定义时候箭头函数的指向完全乱套。
jyootai
2018-04-13 10:13:53 +08:00
@Akkariin 此话怎讲?
murmur
2018-04-13 10:16:00 +08:00
@shenqi 那你应该去跟 ES 委员会说 为什么偏偏 ES6 的箭头表达式不按之前 this 的套路走
Akkariin
2018-04-13 10:17:55 +08:00
@jyootai react 吗?之前不是改过开源协议吗,之后好多公司都转了,除此之外就是 mvvm 看上去比较 cool。
brickyang
2018-04-13 10:20:28 +08:00
是不是还看到了一大批 Vue 的仿站项目?
KuroNekoFan
2018-04-13 10:26:07 +08:00
国内 vue 比较流行,是事实
react 更优秀,也是事实
murmur
2018-04-13 10:27:59 +08:00
@KuroNekoFan react 不是更优秀在于他做的太少了 很多东西都要使用者自己来
vue 提供了官方的全家桶 帮你在模板里做了 if for 这种超常用标签的封装
我可不认为 if 和 for 都要自己用语法糖的框架多优秀
jsx 给我的感觉就是你有一个超强的计算器可以算矩阵可以算微积分但是 1+1 都要自己用积分来实现
xrlin
2018-04-13 10:32:28 +08:00
作为后端,我喜欢 angular
sunzhenyucn
2018-04-13 10:36:46 +08:00
作为后端开发
TypeScript 以及 Angular 的 DI 使我感觉到倍感亲切
notedown
2018-04-13 10:37:40 +08:00
@murmur jsx + es6 没必要做常规标签的封装了 list.filter((item)=> item.type === 1).map((item)=> <div>{item.name}</div>)
用 vue 纯粹是为了移动端压缩小. react 做移动端不太好.如果只会 vue.我想他应该不怎么写 es6 尖头等新 es 新特性
KuroNekoFan
2018-04-13 10:38:58 +08:00
@murmur 关于 vue 里一些指令,syntax 的问题,我也跟挺多人交流过,觉得这玩意儿真的是提升了学习成本和犯错几率。单纯的 react 用起来真的是很简单很纯粹,比 vue 清晰
murmur
2018-04-13 10:45:41 +08:00
vue、react、angular3 个都用过的写两句
首先 react 不得不说洋人的信仰就是足,按以前把 html 和 js 混写到一起的在哪里都会被打死,现在你居然可以明目张胆在 js 里大段写 jsx 还被赞美,然后作为一个 mvvm 框架,vm 层多重要不言而喻,这是给用户的门面,然而一个 vm 层连 if 和 for 都要自己用语法糖实现(尤其是企业应用稍微复杂的业务没 if 和 for 会死人的),最终写出来的东西简直一个丑陋。react 给我的感觉就是开发者各个很 geek,还喜欢搭配 rxjs 这种东西,然而都 2018 年了,即便是你只要用到 promise,不用 async 这种语法糖,配合超强的 IDE 也不会让开发特别难受,如果你的业务非得一堆时序 ajax 不合并,我建议你去把后端先打死。换句话说,一个项目好坏绝大多数跟你管理有关,而不在乎你的语法糖多么炫酷,你的函数式编程多么牛逼。
然而 react 生态就是牛逼,配合 react native

vue 的感觉就是给人用的,如果 react 是给 geek 用的,框架设计处处透露着以人为本的气息。为什么 react 要设计出不可变对象这个概念,很大一部分原因是他的 setState 有些弱智没法检测 Array 或者 Object 内部的改动,然而 vue 大多数改动是可以检测出来的,所以 vue 在优化上也会比 react 省心多。而且你拿到 vue 之后,稍微用脚手架配一下构建部分,会发现这东西跟你以前写过的东西没区别,html 对应 template,js 对应 script,模块天然分段,表现是表现脚本是脚本,组织严谨可读性强。而且,vue 帮你准备了你以前用过的所有东西,我说的就是事件,虽然说事件相比于 state 管理不太好调试,但是通过合理的参数和命名是可以避免这个问题的,而且事件这东西太 tm 灵活了。
vue 的问题就是缺少移动端和 native 的适配,weex 我用算信了你的邪。

ng1 在当年局限于 ie8 没有 es5 特性被迫弄出的性能问题,然而 ng2 从底层到语法大改伤了很多人的心,ng2 虽然后面提供了去掉 compiler 的编译模式,让他的 helloworld 能和 vue 和 react 有一拼,然而当年的配置依然过于繁琐,以至于 ng 虽然很优秀但是输在了起跑线。如果是企业开发,或者是 java 程序员,应该会很容易接受 ng 那套概念,即便是 ng1。
fe619742721
2018-04-13 10:51:07 +08:00
行吧,你在这里问三大框架,vue 永远是被踩的那个,毕竟会的人太多了就瞧不上啦
不过我司一样用 vue 用的挺开心的,会 vue 的前端好招,面试的时候稍微把把关,机灵点的初级前端招进来教几天就能写了,开发规范约定好,大型项目一样在跑
learnshare
2018-04-13 10:51:51 +08:00
Vue 更倾向于在国内流行,React 偏国际化,Angular 位居第三
bucky
2018-04-13 10:56:55 +08:00
有些人工作多少年也分不清程序对技术的信仰和公司对技术的需求之间的区别,打工的永远也不会明白做老板的,这就是思维的局限吧
grewer
2018-04-13 11:08:21 +08:00
@shenqi Vue 里函数比箭头函数更简洁吧
react:
```
foo = (bar)=>{
console.log(bar)
}
```
vue:
```
foo(bar){
console.log(bar)
}
```
谁更简洁不是一目了然?

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

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

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

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

© 2021 V2EX