React 元素渲染

React 元素渲染

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

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

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

元素的定义和一个内涵更广的定义“组件”容易搞混,元素事实上只是构成组件的一个部分。

将元素渲染到 DOM 中

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

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

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

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

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

更新元素渲染

React 元素都是immutable 不可变的。当元素被创建之后,你是无法改变其内容或属性的。一个元素就好像是动画里的一帧,它代表应用界面在某一时间点的样子。

根据现阶段了解的有关 React 知识,更新界面的唯一办法是创建一个新的元素,然后将它传入 ReactDOM.render() 方法:

这是一个计时器的例子:

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

注意:在实际生产开发中,大多数React应用只会调用一次 ReactDOM.render() 。

React 只会更新必要的部分

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

即便我们每秒都创建了一个描述整个UI树的新元素,React DOM 也只会更新渲染文本节点中发生变化的内容。

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

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

React 只会更新必要的部分

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 元素渲染:元素是构成React应用的最小单位 元素是用来藐视你在屏幕上所看到的内容。 与浏览器的 DOM 元素不同...
    热衷划水张小福阅读 1,082评论 0 0
  • 元素是构成React应用的最小单位,用来描述我们在屏幕上看到的内容: 与浏览器的DOM元素不同,React当中的元...
    张延伟阅读 486评论 0 0
  • 40、React 什么是React?React 是一个用于构建用户界面的框架(采用的是MVC模式):集中处理VIE...
    萌妹撒阅读 1,196评论 0 1
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,952评论 1 18
  • 宁宁: 今天是礼拜六,可以和你待在一起真好!上午送你去写毛笔字,外面晴空万里,甚至有点燥热,所以我选择骑电...
    春华秋实吧阅读 292评论 2 0

友情链接更多精彩内容