码迷,mamicode.com
首页 > 其他好文 > 详细

react渲染机制

时间:2018-05-09 14:36:16      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:struct   component   form   keyword   ant   rom   NPU   包括   不同   

react组件

class Form extends React.Compoent{

  constructor() {

    super()

  }

  render(){

    return(

    <from><input type="text"/></from>

  )

  }

}

ReactDOM.render((<div><Form/></div>)).document.getElementById(‘app‘)

ReactDOM.render把组件进行开始渲染

React.createEelement()把组件生成一个对象,这个对象把代表一个真是的dom,这个对象就是我们说的虚拟dom,(虚拟dom就是用js对象结构模拟html的dom结构,增删改查先直接操作js对象,最后更新到真正的dom树上)

虚拟出来的dom如下:

{
  type: ‘div‘,
  props: {
    className: ‘test‘,
    children: []
  }
}

虚拟dom 对象还包括react自身需要的属性,比如ref,key

有了虚拟dom,接下来的工作就是把虚拟dom树渲染成真正的dom树

1:react的做法就是根据不同的type构造出相应的渲染对象

2:然后渲染对象使用mountcomponent方法(负责把虚拟dom生成真实的dom)

3:然后循环迭代整个虚拟dom树,生成最终的真实的dom树,最终插入容器节点

// vdom 是第3步生成出来的虚拟 dom 对象
 
var renderedComponent = instantiateReactComponent( vdom ); // dom node
 
var markup = renderedComponent.mountComponent();
 
// 把生成的 dom node 插入到容器 node 里面,真正在页面上显示出来
 
// 下面是伪代码,React 的 dom 操作封装在 DOMLazyTree 里面
 
containerNode.appendChild( markup );

 

react渲染机制

标签:struct   component   form   keyword   ant   rom   NPU   包括   不同   

原文地址:https://www.cnblogs.com/liangshuang/p/9013243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!