你是否曾经在选择 react 和 vue时犹豫不决 ?
2017年已经完结,你该结束选择选择困难征了!
我从2016下半年 ~ 2017陆陆续续研究使用vue全家桶和react全家桶已经一年多了,
不同的框架有不同的感受, 下面来谈谈我个人在学习和开发中对这两个框架的感受 (个人观点, 仅供参考)
本文将包含vue和react的以下方面
- 1.学习曲线
- 2.开发效率
- 3.维护成本
- 4.性能对比
- 5.生态对比
- 6.技术提升
- 7.职位要求
- 8.学习建议
1.学习曲线
总体来说, vue全家桶的学习曲线肯定是比react全家桶平缓要平缓的:
-
(1)上手速度
- vue具有良好且快速跟进的中文开发文档, 让你可以快速上手, 官方的例子也足够生动
- vue-cli拿来就用,css预处理器, css模块化轻松实现, 即使你不太懂
webpack
- 相比之下, react的中文版跟进没有vue这么快, 对部分开发者来说会形成障碍.
- react的脚手架:
create-react-app
, 搭建项目之后还需要改造, 自己实现css模块化方案和css预处理器
-
(2)编写组件
- react编写组件相对更加自由,无需注册,核心api非常少,你只需要提前了解
jsx
语法 - react组件是在 js中写 html, 所以react的组件中可以注入更强大的逻辑操作
- vue编写组件只需要你懂 html/css/js即可, 但是需要去熟悉大量的api
- vue的组件一般是在html中写js表达式相对来说,逻辑处理能力会低于 react组件(虽然vue也支持jsx,但一般不这么做)
- react编写组件相对更加自由,无需注册,核心api非常少,你只需要提前了解
-
(3)路由:vue-router 和 react-router
- 相对来说,
vue-router
的学习比react-router
更简单, 文档示例丰富 - react-router更加强大, 因为它路由相关的东西都被视为组件(react-router4), 使用非常便利
- react-router版本变化差异大, 你需要更多的时间去学习
- vue-router默认支持 keep-alive, 可以将路由组件完全保存在内存中, 避免不必要的重复渲染, react-router暂时没有
- 相对来说,
-
(4)状态管理vuex和redux系列
- 总的来说react的状态管理要比vue复杂很多
- react状态管理: redux/react-redux/react-router-redux/Hoc/pure-render/immutable/async/redux-saga...要学的东西和概念特别多, 例如函数式编程相关概念, 你要全部都弄明白的话, 建议阅读源码, 否则你只能是一知半解
- 相对来说 vue的状态管理 vuex更好掌握,概念更少
2.开发效率
开发效率, 因人而异 (_), 说几点区别
- vue提供各种指令和api, 可以说帮我们实现了部分我们逻辑, 例如 v-if ,$router, $route...
- react是声明式的, api很少, 很多效果需要我们自己去实现, 相对来说 react写的代码更多
- react组件在开发的时候要考虑 rerender的问题, 这一点在vue组件上基本上不用考虑
- 开发效率, 不能一概而论, 和团队的基础建设有关系, 和个人能力也有关系
3.维护成本
维护成本, 理论上和框架关系不大, 主要关系到团队的开发规范, 指标, codeReview 和 个人
4.性能对比
vue和react的性能都能满足实际生产需求, 不过vue的包更小巧; 我相信, 性能应该不是你选择其中一个框架的首要原因
5.生态对比
从全球范围来看, react的使用者更多, 生态圈更强大, 轮子也更多, 而且, react还有更为强大的 react-native(当然vue也有 weex, 但是量级暂时无法和RN抗衡); 从国内来看, vue使用的人更多(个人感觉, 主要是中小型公司) ,使用react主要是一些大公司和老司机
,
6.技术提升
个人感觉, 弄懂react全家桶是一个漫长的过程, 在学习react的过程中, 你需要学习:react, jsx, redux, middleware, react-redux, react-router-redux, immutable, Hoc, generator, pure render, ES7, 函数式编程相关概念..., 你需要很多的思考, 甚至是阅读源码才能弄明白是它怎么回事. 这个学习的过程对你的提高是非常大的, 你明白了如何让程序解耦, 如何避免重新渲染提高性能, 如何写出健壮安全优雅的代码; 更重要的是你学会了思考, 学会了如何去优化你的项目...所以, 不管怎样, 你都要学学react, 这也许是对你前端生涯的升华
7.职位要求
现在一般的前端岗位都要求至少会使用 vue/react中的一种, 因为大部分公司已经使用这些框架在实际生产中一两年了, 所以无论如何, 你至少需要精通一个框架, 例如vue, 因为这是你的饭碗, 便于你更快的干活儿, 你必须精通它; 当然, 如果时间允许, 还是建议你 avr这三种框架都学习一下, 以便在职位关键词上匹配更多的公司
8.学习建议
个人建议, 作为一个前端, 首先要打好专业基础, 再至少要深入学习 vue 和 react 两种框架, 不限于框架使用, 组件开发, 性能优化, 源码解读, SSR, 混合开发. 这里为什么这里没有提到angular呢? 因为它太善变了, 变得你措手不及, 另外一点是, 现在在国内vue和react是主流, angular更多是后台开发者和一些老旧项目在使用. 那是不是学完这几个框架就可以高枕无忧了? 当然不是, 一入前端, 才知深似海, 那些说前端简单的, 我敢说他连css样式都不懂, html属性都不清, 更不用说易学难精的js了, 所以, 走自己的前端路让他人默默装 X 去吧; 你需要知道, 前端的世界变化太快, 半年不学习就到了淘汰的边缘, 所以你需要不停的学习, 你要学习的东西, 太多, 太多...
只有不断学习, 才能让自己立于不败之地!
不说了, 表演结束_, 我去学习了...
转载请注明原地址,我的新版博客:blog.nodejsx.tech 谢谢!