哔哔肾 回答了问题 · 2017-10-28
React 与其说是一种框架,倒不如说是一种开发范式。它的核心理念非常简单:
界面/视图就是数据结构的可视化表达
UI = f(data)
而界面/视图由组件组合而来
UI = f1(data) + f2(data) + f3(data) + ...
That's all.
React 扮演的角色就是上述公式中的 f,它完全是函数式的,组件就是函数,给它一个输入(传参),它就返回一个输出(UI)。只有理解了这种开发理念,用 React 才会得心应手。如果只是去学“语法”,仅满足于“能用”,React 确实会显得非常怪异而麻烦。
Vue 的核心理念与 React 其实是一致的,但在 API 的实现上 Vue 对于用户而言更加友好。不像 React,Vue 不会要求用户“Think in Vue”,因为不需要,Vue 是一个渐进式的框架,它并没有大幅改变用户原有的开发方式,它既可以作为插件植入老的 jQuery 项目,也可以作为整个项目的核心框架层。并且 Vue 提供了各种实用的 API,而 React 本身的 API 非常少,许多功能需要自行封装或引用现成的组件。
从能力上讲,两个框架其实差别不大,几乎不存在 React 能干而 Vue 干不了或 Vue 能干而 React 干不了的事,不都是 JS 嘛。不过 React 对于使用者的 JS 能力有一定要求,而 Vue 基本上跟 jQuery 一样前端入门一个月就开始学也没什么问题,以致于知乎上有人开始担心 Vue 大幅削弱了前端的门槛,降低了前端的水准。。。
在实际业务中,我个人更倾向于 Vue,理由就是简单,简单就是好。招人方便,就算不会,很快能上手,写出的代码就算渣,改起来也相对容易。滴滴、饿了么都是 Vue 的深度实践者,百度、京东也有相关实践,阿里直接与 Vue 合作搞了 weex,微信小程序的 API 几乎就是 Vue 的翻版。会用 Vue,同时就会了 weex 和小程序。做后台用
Element UI,简直找不到更好更高效的后台应用解决方案了。Vue 就是新时代的 jQuery,是广大中小型互联网公司的福音。
至于为什么有些团队选择 React,我个人猜测的原因是:首先他们有足够的实力;其次,决策者的精英主义情节让他们下意识的避免容易被认为“简单”的东西;第三,Vue 一开始是个人搞的业余项目,且比 React 晚了两年,还未得到足够的验证,而 React 出身不凡,并且在自家产品里有广泛实践。
总之,我看好 Vue。先学 Vue 再学 React,你会忍不住感慨:真是太麻烦了,太麻烦了。而先学 React,再学 Vue,你会忍不住感慨:真是太方便了,太方便了。
React 与其说是一种框架,倒不如说是一种开发范式。它的核心理念非常简单: 界面/视图就是数据结构的可视化表达UI = f(data) 而界面/视图由组件组合而来UI = f1(data) + f2(data) + f3(data) + ... That's all. React 扮演的角色就是上述公式中的 f,它完全是函数式...