使用方法
html 中的 div 容器叫根节点
根节点内的所有内容都是由 ReactDOM 进行管理
一个 React 应用只有一个根节点,用 ReactDOM.render() 方法将 react 元素渲染到根节点中
const rEL = <h1 className="title">This is a title</h1>;/*** @param ReactElement - react元素* @param rootNode - 根节点*/ReactDOM.render(rEl,document.getElementById('app');)
基本的更新逻辑
React 元素是不可变对象 imutable Object
- 不能添加属性
 - 不能修改属性
 - 不能删除属性
 - 不能修改属性的枚举、配置、可写
enumerable / configurable / writable 
ReactDOM.render 会深度对比新旧元素的状态,只会做必要的真实 DOM 更新 ```jsx function update(){ const rEl = (
);This is a title
{ new Date().toString() }
ReactDOM.render( rEl, document.getElementById(‘app’); ); }
setInterval(update, 1000); // 观察 element 中节点的更新状况 // h1 没有更新 // 只有 h2 在更新
- 渲染之前 -> 每个 React 元素组成一个虚拟 DOM 的对象结构 -> 渲染- 更新之前 -> 形成新的虚拟 DOM 的对象结构 -> 对比新旧的虚拟DOM节点 -><br /> 分析出两者的不同点 -> 形成一个 DOM 更新的补丁 -> 操作真实 DOM (更新真实 DOM )以分析对比形成补丁来剔除一些不必要的 DOM 操作- DOM 元素内容更新- DOM 元素位置变更来优化性能```jsx// 类组件class Title extend React.Component {render (){return <h1>This is a title.</h1>}}// 函数组件function Title(){return ( <h1>This is a title.</h1> );}// <Title /> 相当于实例返然后 运行render()// 也可以 React.createElement()把类转变React元素ReactDOM.render(// <Title />,// React.createElement(Title),document.getElementById('app');)
如果是组件渲染
ReactDOM.render 的第一个参数一定要是 React 元素
- 组件使用 JSX 语法
 - 使用 React.createElement 将组件转换为 React 元素
 
这样才能 使组件内部的 render 函数 或 函数组件 执行
