这是我参与「第四届青训营 」笔记创作活动的的第5天
React:是Facebook开发的一款JS库。
React的语法是jsx,通过使用这种语法,可以在react代码中直接混合使用js和html来编写代码,这样代码的逻辑就非常清晰,当然也意味着,需要将jsx代码编译成普通的javascript代码,才能在浏览器中运行,或者在服务器端通过webpack进行编译。
React特点:
- 声明式:我们只需要描述UI,而react负责渲染UI, 当数据变动时 React 能高效更新并渲染合适的组件。
- 基于组件:以组件方式进行开发。构建管理自身状态的封装组件,然后对其组合以构成复杂的 UI。
- 特殊性:使用特殊的jsx(JavaScript XML)语法。
- 高效、灵活:React通过对DOM的模拟使用了虚拟DOM,最大限度地减少与DOM的交互。
缺点:
- 对于一直使用JS,jQuery的传统前端,React非常不友好。
- React强调组件和状态管理,其世界观是面向程序语言的。
- Vue.js强调视图的自动同步,其世界观是面向UI脚本的。
- React的学习成本较Vue.js高。
- React没有全家桶,只做UI。
React与Vue对比
相同之处
虚拟 DOM。映射真实 DOM,通过新旧 DOM 的 diff 对比,更好的跟踪渲染页面。 组件化。将应用拆分成一个个功能明确的模块,每个模块之间可以通过合适的方式互相联系。 构建工具。都有自己的构建工具,通过 Webpack + Babel 去搭建脚手架。 Chrome 开发工具。两者都有很好的 Chrome 扩展去帮助查找 Bug。 配套框架。Vue 有 Vue-router 和 Vuex,而 React 有 React-router 和 React-Redux
不同之处
模板 VS JSX。Vue 推荐编写近似常规 HTML 的模板进行渲染,而 React 推荐 JSX 的书写方式。 监听数据变化的不同。Vue 使用的是可变数据,而 React 更强调数据的不可变。在 Vue 中通过 v-model 绑定的数据,用户改变输入值后对应的值也相应改变。而 React 需要通过 setState 进行设置变化。 Diff 不同。Vue 通过双向链表实现边对比边更新 DOM,而 React 通过 Diff 队列保存需要更新的 DOM,得到 patch 树,再统一批量更新 DOM。 开发团队。Vue 一开始核心就是 Evan You,后面再招了其他人组成团队;React 的话是一开始就是 Facebook 团队搞的。所以网上的人比对源码情况的话,Vue 的比 React 的简单易懂点。
总结
React是以降低前端开发的复杂度为原则的。使用React编写的代码也易于理解,所以适合大规模多人开发,能提高项目的开发效率和质量。