博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React文档(四)渲染元素
阅读量:6948 次
发布时间:2019-06-27

本文共 1348 字,大约阅读时间需要 4 分钟。

元素是React应用的最小单位。

一个React元素描述了你在屏幕上所看到的东西:

const element = 

Hello, world

;

和浏览器页面中的DOM元素不同,React元素是普通的对象,创建起来很方便。React DOM负责处理根据React元素来更新DOM。

笔记:

你也许会困惑元素和另外一个广为人知的概念“组件”有什么区别。我们会在下一章节介绍组件。组件由元素组成,我们建议你看完本章节再看下一章节。

渲染React元素到DOM

让我们假设有一个<div>元素在你的HTML页面里:

我们把这个div叫做根节点因为在这个div里的所有元素都由React DOM管理。

如果只使用React创建应用通常只有一个根节点。如果你将React整合进一个已经存在的应用,可能会存在很多彼此隔离的根节点。

将一个React元素渲染到根节点里,通过ReactDOM.render():

const element = 

Hello, world

;ReactDOM.render( element, document.getElementById('root'));

它会在页面上显示 “Hello World”。

更新已经渲染的元素

React元素是不可改变的。一旦你创建了一个元素,你就不能修改它的属性或者子元素。一个元素就好像一部电影中的一帧画面:它代表在一个确切时间点下的UI。

根据目前我们已知的知识,唯一可以更新UI的方法就是创建一个新的元素,然后将它传递给ReactDOM.render()。

看看这个时钟的例子:

function tick() {  const element = (    

Hello, world!

It is {
new Date().toLocaleTimeString()}.

); ReactDOM.render( element, document.getElementById('root') );}setInterval(tick, 1000);

它利用setInterval()定时器的回调每一秒都会调用一次ReactDOM.render()来更新DOM。

笔记:

在实际使用的时候,大多数React应用只调用一次ReactDOM.render()一次。下一章节我们会学习这些代码如何被包裹在有状态的组件之中。

建议不要跳章节学习因为知识点彼此关联。

React只更新必要的东西

React DOM会将元素和子元素与之前的状态比较,然后只更新必要的部分使DOM变为所希望的状态。

你可以通过检查浏览器开发者工具来验证刚才那个例子:

即使每一秒我们都会重新新建整个UI树,但是只有时间那个文本节点被React DOM更新。

根据我们以往的经验,将界面视为一个个特定时刻的固定内容(就像一帧一帧的动画),而不是随时处于变化之中(而不是处于变化中的一整段动画),将会有利于我们理清开发思路,减少各种bugs。

转载于:https://www.cnblogs.com/hahazexia/p/6379551.html

你可能感兴趣的文章
a标签href无值,点击刷新页面解决办法
查看>>
Arm开发板+Qt学习之路
查看>>
unknown local index 'index_name' in search request
查看>>
看视频学编程之C#中的类
查看>>
C# DataGridView控件绑定数据后清空数据
查看>>
C++基础知识(一)
查看>>
高抬贵手,拉耳复阳
查看>>
win2003 iis6 iis假死
查看>>
计算机网络知识总结
查看>>
poj 3844 Divisible Subsequences 剩余类,组合计数
查看>>
响应式布局这件小事
查看>>
子窗口访问父页面iframe中的iframe,top打开的子窗口访问父页面中的iframe中的iframe...
查看>>
css属性设置
查看>>
MongoDB -- JAVA基本API操作
查看>>
maven-reportng插件依赖添加
查看>>
树的存储结构实例
查看>>
typescript 的 polyfill 学习2-assign
查看>>
触发事件续
查看>>
python动态传参
查看>>
Spring中的Contexts
查看>>