详解React 元素渲染


Posted in Javascript onJuly 07, 2020

元素是构成 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('example')
);

详解React 元素渲染

更新元素渲染

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

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

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

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

运行结果

详解React 元素渲染

以上实例通过 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('example')
 );
}
 
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('example')
 );
}
 
setInterval(tick, 1000);

以上就是详解React 元素渲染的详细内容,更多关于React 元素渲染的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
javascript之学会吝啬 精简代码
Apr 25 Javascript
js变换显示图片的实例
Apr 16 Javascript
基于JQuery 选择器使用说明介绍
Apr 18 Javascript
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
实例分析javascript中的call()和apply()方法
Nov 28 Javascript
jQuery中:button选择器用法实例
Jan 04 Javascript
利用Angularjs实现幻灯片效果
Sep 07 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
Jul 12 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
微信小程序API—获取定位的详解
Apr 30 Javascript
JS数据类型判断的几种常用方法
Jul 07 #Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 #Javascript
jQuery 实现扁平式小清新导航
Jul 07 #jQuery
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 #Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 #Javascript
React+EggJs实现断点续传的示例代码
Jul 07 #Javascript
JS实现联想、自动补齐国家或地区名称的功能
Jul 07 #Javascript
You might like
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python版名片管理系统
2018/11/30 Python
python字典改变value值方法总结
2019/06/21 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
python cookie反爬处理的实现
2020/11/01 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
数字漫画:comiXology
2020/06/13 全球购物
Shell编程面试题
2012/05/30 面试题
50道外企软件测试面试题
2014/08/18 面试题
省级优秀班集体申报材料
2014/05/25 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers