React 元素渲染

元素是构成 React 应用的最小单位,它用于描述屏幕上输出的内容。

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

与浏览器的 DOM 元素不同,React 当中的元素事实上是普通的对象,React DOM 可以确保 浏览器 DOM 的数据内容与 React 元素保持一致。

将元素渲染到 DOM 中

首先我们在一个 HTML 页面中添加一个 id="example"<div>:

<div id="example"></div>

在此 div 中的所有内容都将由 React DOM 来管理,所以我们将其称为 "根" DOM 节点。

我们用 React 开发应用时一般只会定义一个根节点。但如果你是在一个已有的项目当中引入 React 的话,你可能会需要在不同的部分单独定义 React 根节点。

要将React元素渲染到根DOM节点中,我们通过把它们都传递给 ReactDOM.render() 的方法来将其渲染到页面上:

实例

const element = <h1>Hello, world!</h1>; ReactDOM.render( element, document.getElementById(&qpos;example&qpos;) );

尝试一下 »

更新元素渲染

React 元素都是不可变的。当元素被创建之后,你是无法改变其内容或属性的。

目前更新界面的唯一办法是创建一个新的元素,然后将它传入 ReactDOM.render() 方法:

来看一下这个计时器的例子:

实例

function tick() { const element = ( <div> <h1>Hello, world!</h1> <h2>现在是 {new Date().toLocaleTimeString()}.</h2> </div> ); ReactDOM.render( element, document.getElementById(&qpos;example&qpos;) ); } setInterval(tick, 1000);

尝试一下 »

以上实例通过 setInterval() 方法,每秒钟调用一次 ReactDOM.render()。

我们可以将要展示的部分封装起来,以下实例用一个函数来表示:

实例

function Clock(props) { return ( <div> <h1>Hello, world!</h1> <h2>现在是 {props.date.toLocaleTimeString()}.</h2> </div> ); } function tick() { ReactDOM.render( <Clock date={new Date()} />, document.getElementById(&qpos;example&qpos;) ); } setInterval(tick, 1000);

尝试一下 »

除了函数外我们还可以创建一个 React.Component 的 ES6 类,该类封装了要展示的元素,需要注意的是在 render() 方法中,需要使用 this.props 替换 props

实例

class Clock extends React.Component { render() { return ( <div> <h1>Hello, world!</h1> <h2>现在是 {this.props.date.toLocaleTimeString()}.</h2> </div> ); } } function tick() { ReactDOM.render( <Clock date={new Date()} />, document.getElementById(&qpos;example&qpos;) ); } setInterval(tick, 1000);

尝试一下 »

React 只会更新必要的部分

值得注意的是 React DOM 首先会比较元素内容先后的不同,而在渲染过程中只会更新改变了的部分。

友情链接

搜外友链  |   鬼故事  |   手游源码  |   bl漫画网(漫乐园)  |   维珍优创(维珍优创)  |   生活百科(友链_中贝网)  |   小程序(小程序_中名软)  |   娱乐八卦(娱乐_中尚网)  |   香港云主机(香港主机租用)  |   中名软件园(中名软件园)  |   优鞋论坛(优鞋论坛)  |   免费漫画(51漫漫画网)  |   考研资料  |   情商号(情商号)  |   企培圈(企培圈)  |   中国手机号  |   图图资源(图图资源)  |   云服务器租用(零创智能云)  |   端午诗词  |   软件下载  |   时尚搭配  |   手机游戏  |   美发护发(发型_中名女性)  |   黑马导航(黑马导航)  |   企业内刊(画册设计)  |   山特蓄电池(山特ups电源)  |   爱链接  |   生活知识  |   领为  |   和平精英辅助  |   宁夏特产网  |   浪涌保护器  |   大地影院  |   盘基地资源论坛  |   微博买fo链接(https://www.nathantop.top/)  |   网站排行榜  |   快手号出售  |   养生网  |   电话呼叫平台  |   奇闻大百科  |   起名网  |   clock资源网  |   南湖网  |   win10系统下载  |   Win7纯净版  |   自动收录网站  |   北京网站优化  |   礼品代发  |   苏作研习社  |   中创网  |   轻钢龙骨  |   中赚网  |   轻触开关  |   立轴行星搅拌机




意见反馈 ||  关于我们 ||  用户协议 ||  隐私保护 ||  商务合作

Copyright © 2020-2022 中华文学苑(华文苑) 京ICP备17037819号

Email:artype@163.com      QQ:262989474

加入华文苑qq群

Android下载