当前位置: 首页 > news >正文

HoRain云--React 元素渲染

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

实例

将元素渲染到 DOM 中

实例

更新元素渲染

实例

实例

实例


在 React 18 中,元素渲染与之前的版本有一些变化,特别是在使用ReactDOM.createRoot和新的并发特性方面。下面是一个详细的示例和解释,展示如何在 React 18 中渲染元素。

实例

import React from 'react';
import ReactDOM from 'react-dom/client';

// 创建一个简单的 React 组件
function App() {
return <h1>Hello, React 18!</h1>;
}

// 获取 id 为 "example" 的 DOM 容器,并创建一个 React 根节点
const root = ReactDOM.createRoot(document.getElementById("example"));

// 渲染 React 组件到 DOM 中的根节点
root.render(<App />);

React 元素是构建 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节点中,我们通过把它们都传递给 root.render() 的方法来将其渲染到页面上:

实例

// 创建一个 React 元素 const element =<h1>Hello, world!</h1>; // 获取 DOM 容器并创建根节点 const root = ReactDOM.createRoot(document.getElementById("example")); // 渲染 React 元素到 DOM 中的根节点 root.render(element);

root.render 方法将 element 渲染到之前创建的根节点中,这样 element 就会显示在 id 为 "example" 的 DOM 元素内。

更新元素渲染

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

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

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

实例

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

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

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

实例

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

除了函数外我们还可以创建一个 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() { const root = ReactDOM.createRoot(document.getElementById("example")); root.render( <Clock date={new Date()} /> ); } setInterval(tick, 1);

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

http://www.jsqmd.com/news/1017812/

相关文章:

  • AndroidIDE终极指南:在手机上打造专业开发环境的完整教程
  • 广州市认定广东专利奖有什么补贴政策
  • 垃圾袋批次色差、厚薄不均?标准化量产解决商用采购痛点 - 速递信息
  • 2026宁波黄金回收TOP1优选 合规高价服务领跑本地市场 - 奢侈品回收测评
  • 8年老后端转行上岸,月50k+双休的真实经历
  • 青岛做GEO优化怎么选?2026本地专业团队指南
  • Excel长数字解析踩坑实录:从POI的CellType到DataFormatter,我的避坑与选型思考
  • 如何快速解锁加密音乐:普通用户的完整音频解密指南
  • 2026石家庄瓷砖空鼓修复公司推荐TOP5,厨卫/地暖/老房免砸砖修复,专业师傅持证上岗、响应迅速,24小时上门检测(6月最新统计) - 防水空鼓维修家
  • 如何用NewJob智能插件3倍提升求职效率:一眼识别有效职位
  • Unity透明窗口:打破应用边界,让UI悬浮在桌面之上
  • STM32 上跑 TinyML,到底行不行?—— 从选型到部署的完整指南
  • 赤峰市回收奢侈品手表包包去哪好?整理了5家本地实体店对比记录 - 千叶啊
  • MSC8251 HSSI DMA控制器编程详解:从链式描述符到实战配置
  • 深度定制C标准库:嵌入式开发中控制台I/O与多线程安全配置实战
  • MSC8251 TDM接口寄存器配置详解:从时序到缓冲区的实战指南
  • 嘉兴黄金回收上门服务 翩环计价规则全透明 - 润富黄金回收
  • 佛山市认定省级制造业单项冠军企业的具体流程
  • MultiLogin:高效解决Minecraft服务器多认证源共存难题
  • 2026 年黄石装修公司实力排行榜 靠谱家装品牌精选推荐 - 速递信息
  • 终极Windows清理指南:Bulk Crap Uninstaller三步彻底卸载垃圾软件
  • VBrowser-Android:如何实现安卓视频嗅探与离线缓存的终极解决方案
  • 技术揭秘:如何实现跨厂商帧生成的DLSS-G替代方案与开源兼容层
  • PowerPC e300核心缓存与中断机制:构建确定性嵌入式系统的关键
  • 丹东市回收奢侈品手表包包去哪好?整理了5家本地实体店对比记录 - 千叶啊
  • 别再被sklearn的train_test_split坑了!手把手教你处理小样本数据集划分(附完整代码)
  • 2026湘潭黄金回收避坑指南,门店大全 - 润富黄金回收
  • Spek音频频谱分析工具:3个步骤让你快速掌握音频可视化技术
  • 避开VCSA 6.7/7.0部署的隐形大坑:从DNS检查到安装界面点击顺序的完整避坑清单
  • 端到端自动驾驶:UniAD、VAD 的具身视角解读