React是划时代的开发工具。
优点
更彻底的组件化
组件化意味着:
- 符合高内聚、低耦合的软件开发原则,更容易实现并行开发,也更容易定位bug进行调试。
- 可复用。
组件化的具体实现就是使用 JSX,把 html 写在了 JavaScript 中。
单向数据流
在React中,你操作的是数据。React根据你的数据变动来渲染出新的内容。数据就是数据,渲染就是渲染。避免了MVC中view部分又去直接修改model。具体实现运用了Redux、纯函数、高阶组件。
虚拟DOM
对于三大框架 React、Angular和Vue这不算很稀奇的事情。只是对比jQuery有优势。
缺点
颠覆传统的前端开发
意味着开发者要学习一些新的开发范式。比如传统前端遵循html/css/js分离,而React因为组件化,所以都使用JSX把html写在了JavaScript中。Vue号称自己的侵入性比 React 和 Angular 小,而且仍然保留 html/css/js 分离,且可以使用 ES5 语法(不强制使用ES6)。
学习曲线陡峭
React自带的JSX、ES6语法、组件化、单向数据流、Redux、jest/enzyme测试。
总结
关于框架的选择,仍然是那句话:萝卜白菜各有所爱,适合自己的就是最好的。然而前端正在进行一场革命,从2015年/2016年来看特别明显。React可能不是这场前端革命的终点(也许三大框架都不是),但是React带来的新的开发思路,值得去了解。