代码之家  ›  专栏  ›  技术社区  ›  cubefox

react中的.render()函数如何在内部工作?

  •  0
  • cubefox  · 技术社区  · 6 年前

    我可以这样定义一个组件:

    class Welcome extends React.Component {
      render() {
        return <h1>Hello!</h1>;
      }
    }
    

    当我想在dom中呈现这个对象(或者更确切地说,将它添加到虚拟dom中)时,我调用

    ReactDOM.render(
      <Welcome />,
      document.getElementById('root')
    );
    

    这意味着在某个时刻 .render() 函数嵌套在彼此内部,因为我们定义了 return <h1>Hello!</h1>; 里面 RelDead() 功能 Welcome . 这也意味着我可以使用 RelDead() 方法将对象呈现到DOM并定义新的React对象。

    此语法来自 official documentation

    RelDead() 只需将内容呈现到虚拟DOM 嵌套是通过内部反应来解决的,还是背后有更多的反应?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Miroslav Glamuzina    6 年前

    Rendering a Component :

    (更新以反映您的代码)

    class Welcome extends React.Component {
      render() {
        return <h1>Hello!</h1>;
      }
    }
    ReactDOM.render(
      <Welcome />,
      document.getElementById('root')
    );
    
    1. 我们打电话 ReactDOM.render() <Welcome /> 元素。
    2. 响应调用欢迎组件 {} 作为道具。
    3. 欢迎组件返回 <h1>Hello!</h1> 结果是元素。
    4. react dom有效地更新dom以匹配 <h1>Hello</h1> .

    阅读 React Life Cycle .