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

[注意:]引入尽量的 React 首写字母必须大写

Last Updated:
Contributors: websong