react 虚拟 dom
1.什么是虚拟 dom
- react 里写的所有的标签都是虚拟 dom,在 react 里
<div />
和React.createElement('div')
是等价的。 - 那什么是虚拟 dom 呢?简单粗暴的说就是 js 生成的 dom,往复杂一点说就是 js 基于一种快速计算的方式生成的 js-dom 树。
- 在 react 里虚拟 dom 是基于 diff 算法的,笼统的说就是新旧 dom 片段比对,如果发现代码块不一致,则停止深层对比,直接用新 dom 替换旧 dom。所以执行很快。
- 由于 diff 算法的优化性,在我们使用循环渲染出一组节点的时候,每一个被渲染出来的节点上都需要加 key,为的是节省 diff 对比开支。diff moreopen in new window
2.创建虚拟 dom 的 api
React.createElement("h1", {}, "我是内容");
三个参数:原生标签名称,属性,内容 示例:
import React, ReactDOM from "react";
// 这个就是我们创建的虚拟dom
let MyH1 = React.createElement("h1", {}, "我是内容");
// 将虚拟dom渲染在页面上
ReactDOM.render(<MyH1/>, document.getElementById('App'))
1
2
3
4
5
2
3
4
5
[注意:]引入尽量的 React 首写字母必须大写