当前位置: 首页 > 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.gsyq.cn/news/1529644.html

相关文章:

  • 2026 广州 LV 包包回收排行:持证鉴定报价透明,变现靠谱 - 奢侈品回收评测
  • 2026宁波黄金回收TOP1优选 合规高价服务领跑本地市场 - 奢侈品回收测评
  • Unity透明窗口:打破应用边界,让UI悬浮在桌面之上
  • 如何用NewJob智能插件3倍提升求职效率:一眼识别有效职位
  • 赤峰市回收奢侈品手表包包去哪好?整理了5家本地实体店对比记录 - 千叶啊
  • 深度定制C标准库:嵌入式开发中控制台I/O与多线程安全配置实战
  • 2026 年黄石装修公司实力排行榜 靠谱家装品牌精选推荐 - 速递信息
  • 技术揭秘:如何实现跨厂商帧生成的DLSS-G替代方案与开源兼容层
  • Spek音频频谱分析工具:3个步骤让你快速掌握音频可视化技术
  • 093、成本控制与 Token 监控:用量统计、预算预警、模型降级与成本报告
  • WCT1011B ADC与PWM实战:从寄存器配置到电机控制应用
  • 先避免毁灭性错误,再谈聪明决策。
  • i.MX CAAM与SNVS安全子系统实战:硬件密钥管理与主动防御
  • AndroidIDE终极指南:在手机上构建专业级Android应用开发环境
  • 嵌入式安全机制:ECSM与FCCU在功能安全系统中的协同设计与实战
  • GEO优化单条客户线索成本是多少
  • MSC8251 DDR内存ECC错误处理与中断系统配置实战指南
  • UEFITool 0.28:UEFI固件分析工具终极指南
  • FlexRay消息缓冲区:汽车实时通信的硬件数据管理核心
  • 嵌入式系统时钟与功耗管理:MSC711x PLL配置与低功耗模式实战
  • 如何永久保存微信聊天记录?完整指南让数据真正属于你
  • 如何高效使用Dism++:Windows系统优化工具完整指南
  • 深入解析MSC8113 DSI接口:主机接口设计、时序配置与调试实战
  • 深入解析AHB-Lite交叉开关仲裁机制:从总线竞争到智能调度
  • 朝阳市奢侈品手表包包出手怎么卖高价?5家本地回收店实地询价分享 - 凯撒是大帝
  • 2026黄石黄金回收价格参考 教你挑选靠谱回收店铺 - 润富黄金回收
  • 踩坑记录:项目里既有poi-tl又有老版POI?版本冲突导致NoSuchMethodError的排查与解决
  • AI 的 USB-C 接口:MCP 到底怎么让大模型连接文件、数据库和工具
  • RustDesk 1.4.6 官方版下载(夸克网盘+百度网盘,SHA256校验)
  • JTAG边界扫描与MSC711x调试实战:从原理到硬件断点设置