ReactJS介绍
简介
ReactJS是为了解决构建随着时间数据不断变化的大规模应用程序而设计的用来构建用户界面的JavaScript库,是MVC中的V(视图)
React设计思想
React设计思想很独特,属于革命性创新,性能独特,代码逻辑却非常简单。很有可能会成为将来Web开发的主流工具。这个项目本身也越来越大,从最早的UI引擎变成了一整套前后端通吃的Web App解决方案。其衍生出来的React Native项目,希望用Web APP的方式去native app,从而实现同一组人只需写一次UI,就能同时运行在服务器,浏览器和手机。随着在2015年发布了Android版本,把web和原声平台的js开发技术扩展到了Android平台,以后很有可能出现同一组人只需要写一次UI,就能运行在三端(service,mobile,browser)
React两个主要思想:简单,表达能力
简单
仅仅只要表达出你的应用程序在任一个时间点应该长的样子,然后当底层的数据变了,React 会自动处理所有用户界面的更新
表达能力
当数据变化了,React 概念上是类似点击了更新的按钮,但仅会更新变化的部分。
注意事项:
- React 不是一个完整的MVC框架,最多可以认为是MVC中View;
- React的服务器端Render能力只能算是一个锦上添花的功能,不是其核心出发点
- React不是一个新的模板语言,JSX只是一个表象,没有JSX的React也能工作。
React特性与原理
特性
- 采用单向数据流,易追踪数据
- 将HTML,JS结合起来构建组件,组件状态和结果意义对应起来,实现模块化开发
- 创建了高性能的虚拟DOM,避免直接操作DOM。即组件不是真实的DOM节点,而是存在于内存中的一种数据结构。所有的DOM变动都先在虚拟DOM上发生,然后再将实际发生变动的部分反映在真实DOM上。(DOM diff算法)
原理
旧模式问题
Web开发中总需要将变化的数据实时反映到UI上,就需要对DOM进行操作。旧模式下频繁or复杂的DOM操作通常是性能瓶颈产生的原因===>>如何高性能地进行复杂DOM操作也成为衡量一个Web前端开发人员的重要指标。,React则是直接改造了,在浏览器端用JavaScript实现了一套DOM AP,引入了一套虚拟DOM的机制。