1.什么是 React?
React 是一个开源前端 JavaScript 库,用于构建用户界面,尤其是单页应用程序。它用于处理网页和移动应用程序的视图层。React 是由 Facebook 的软件工程师 Jordan Walke 创建的。在 2011 年 React 应用首次被部署到 Facebook 的信息流中,之后于 2012 年被应用到 Instagram 上。
2.React 的主要特点和优点是什么?
- 虚拟DOM,高效速度快
- 支持在客户端和服务端渲染。。
- 可复用/可组合的 UI 组件。
- JSX 使代码易于读写。
- 单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。
- 跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,甚至在IE8中都是没问题的。
3.React 的局限性是什么?
- React 只是一个视图库,而不是一个完整的框架。
- 对于 Web 开发初学者来说,有一个学习曲线。
- 将 React 集成到传统的 MVC 框架中需要一些额外的配置。
- 代码复杂性随着内联模板和 JSX 的增加而增加。
- 如果有太多的小组件可能增加项目的庞大和复杂。
4.与 Vue.js 相比,React 有哪些优势?
1.重新渲染和优化
当组件的状态发生变化时,React的机制会触发整个组件树的重新呈现。
您可能需要使用额外的属性(shouldComponentUpdate)来避免不必要地重新渲染子组件。
但Vue提供了优化的重新渲染,其中系统在渲染过程中跟踪依赖关系并相应地工作。
2.JSX与HTML
React使用JSX - 一种声明性JavaScript XML,允许开发人员利用JavaScript的强大功能编写组件,
而Vue.js使用HTML模板创建视图。
3.路由和状态管理解决方案
React提供了一种称为Flux / Redux架构的创新解决方案,它代表单向数据流,是着名MVC架构的替代方案。
Vue使用Vuex这个更高级架构,它集成到Vue中并提供无与伦比的体验。
4.建筑工具
React和Vue都有一个非常好的开发环境。只需很少或没有配置,您就可以创建应用程序,使您能够使用最新的实践和模板。
在React中,有一个Create React App(CRA),在Vue中,它是vue-cli。
5.监听数据变化的原理不同
React更多的是比较的数据的引用地址是否一样,Vue是通过数据劫持(Object.defindProperty)来监听数据变化
5.什么是 JSX?
JSX 是 ECMAScript 一个类似 XML 的语法扩展。基本上,它只是为 React.createElement()
函数提供语法糖,从而让在我们在 JavaScript 中,使用类 HTML 模板的语法,进行页面描述。
在下面的示例中,<h1>
内的文本标签会作为 JavaScript 函数返回给渲染函数。
class App extends React.Component {
render() {
return(
<div>
<h1>{'Welcome to React world!'}</h1>