React官网(1)—元素渲染

元素渲染

  • 元素是React apps中最小的构建块

    一个元素用来描述你想要在屏幕上展示的东西

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

不同于浏览器的DOM元素,React元素是纯粹的对象,并且创建的代价很小。React DOM 通过匹配React元素来更新DOM树。

PS:一个可能会混淆元素概念的更广泛的概念是组件。元素是由组件创造的。

 

  •  渲染一个元素放在DOM树里

首先看看HTML文件里的<div>标签

<div id=“root”></div>

我们叫它根DOM结点,因为里面的标签(?)都会被React DOM管理。使用React构造的应用通常只有一个根DOM结点。如果你将React使用在一个已经存在的APP中,可能就会存在多个相互独立的根DOM结点。

想要渲染一个React元素成为一个根DOM结点,需要给ReactDOM.render()传递两个参数

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

ReactDOM.render(

  element,

  document.getElementById('root')

);

 

  •  更新已经被渲染的元素

React元素是不可变的。一旦你创建一个元素,你就不能改变它的子元素或属性。一个元素就像电影里的一帧:它代表了某个时间节点上的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);

每秒回调setInterval()都会重新渲染UI

PS:事实上,大多数的ReactApps只调用ReactDOM.render()一次。所以需要学习如何将元素封装为一个静态的组件。


  • React组件只会在必要的时候更新元素

React DOM会和已经存在的DOM比较元素和它的子元素,只有在必要的情况下更新DOM到理想的新状态。

尽管我们创建了一个元素描述整个UI树在每秒是如何显示的,但只有文本节点的内容改变时ReactDOM才会更新。

考虑UI在任意时间点是如何展示而不是怎样根据时间改变它会消除很多不必要的BUG.(考虑结果而不是变化的过程)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值