3.React中文之渲染元素。

xiaoxiao2021-02-28  136

Elements是最小的React apps构建块。

一个元素描述你在屏幕上想看到的内容。

const element=<h1>Hello,world></h1>;

不像浏览器DOM元素,React元素是一个简单的对象,很容易被创建。React DOM注重更新DOM匹配React 元素。

便签:

人们可能会混淆elements和一个更为熟知的components的概念。我们将会在下一节介绍components.Elements是components组成元素,我们鼓励你读完这节再往前跳。

渲染一个元素到DOM中

在你的HTML文件中某个地方有一个</div>

<div id="root"></div>

我们调用这个“root”DOM节点,因为React DOM管理其中的一切。

使用React构建的应用一般都有一个root DOM节点。如果你集成React到一个已存在的app,你可能有随你喜欢一样多的孤立的roor DOM节点。

渲染一个React元素到一个root DOM节点中,必须把两个都传给ReactDOM.render();

const element=<h1>Hello,world</h1>;

ReactDOM.render(

    element,

   document.getElementById('root')

);

在CodePen中尝试运行下。

会在页面上展示“Hello World”

更新渲染了的元素

React元素是不变的。一个element一旦创建,便不能改变其子节点或属性。一个element就像一部电影里的一个画面:在某个时间点上描绘UI。

按照我们所知道的,更新UI的唯一方式是创建新元素,并传递它给ReactDOM.render()。

思考一下滴答响闹钟的例子:

function tick(){

    const element=(

         <div>

                <h1>Hello,world!</h1>

               <h2>It is {new Date().toLocaleTimeString()}.</h2>

        </div>

     );

     ReactDOM.render(

           element,

           document.getElementById('root')

     );

}

setInterval(tick,1000);

在CodePen中尝试运行

每秒中由setInterval()回叫信息执行ReactDOM.render()

便签

实际上,大部分React apps仅执行一次ReactDOM.render()。在接下来的几个小节中,我们将学习这些代码是怎样被压缩在有状态的组件中的,stateful components.

我们建议你不要跳过任何主题因为他们彼此依赖。

React只更新必要的内容

React DOM 对比元素及其子节点和之前的,只适用必要的引起DOM销毁状态的更新部分。

你可以在浏览器中检查上述例子进行验证。

即使我们在每个滴答声创建一个描述整个UI树的元素,内容已变更的文本节点会被React DOM更新。

依我们的经验,思考UI应该怎样在给定的时间查看,而不是怎样随时间改变消除一系列bug

转载请注明原文地址: https://www.6miu.com/read-17552.html

最新回复(0)