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

Web开发基础学习——理解React组件中的根节点

Web开发基础学习系列文章目录

第一章 基础知识学习之理解React组件中的根节点


文章目录

  • Web开发基础学习系列文章目录
  • 前言
  • 一、根节点的概念
  • 二、示例解释
  • 总结


前言

在 React 应用中,根节点(Root Node)是指 React 组件树的起始点,也是 React 应用挂载到 DOM 的位置。根节点通常是一个 HTML 元素,React 应用会将其组件树渲染到这个元素中。

因为React应用不能单独存在,必须找到一个入口点,挂载上去,才能生长,渲染。所以有根节点的概念。


一、根节点的概念

根节点:是一个 HTML 元素,React 应用会将其组件树渲染到这个元素中。
挂载点:根节点也是 React 应用的挂载点,表示 React 应用在 DOM 中的起始位置。

二、示例解释

在你的 index.html 文件中,有一个 div 元素,具有 id=“root”:

这个html就是 React 应用运行时的基础 HTML 文件。React 应用会将其组件树渲染到这个 HTML 文件中的特定元素内,通常是一个具有特定 id 的 div 元素。

在 React 应用中,index.html 文件提供了一个基本的 HTML 结构,React 应用会将其组件树挂载到这个文件中的一个特定元素内。

  • html文件:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>React App</title>
</head>
<body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div>
</body>
</html>

这个 div 元素就是 React 应用的根节点。React 会将组件树渲染到这个 div 元素中。

  • 在 index.js 中创建根节点并渲染组件
    在 index.js 文件中,使用 ReactDOM.createRoot 创建根节点,并将根组件渲染到这个节点中:
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<React.StrictMode><App /></React.StrictMode>
);reportWebVitals();
  • 使用 root.render 方法将 React 组件渲染到根节点中。
  • <React.StrictMode> 是一个用于突出显示应用中潜在问题的工具。它不会渲染任何可见的 UI,只会激活额外的检查和警告。
  • <App /> 是应用的根组件,所有其他组件都将作为其子组件进行渲染。例如,之前我们文中提到的modal组件(模态组件)。

总结

  • 根节点:是 React 应用的起始点,也是 React 应用挂载到 DOM 的位置。通常是一个 HTML 元素,如 div,具有特定的 id。
  • 在 index.js 中创建根节点:使用 ReactDOM.createRoot 创建根节点,并将其与 HTML 文件中的 div 元素关联。
  • 渲染组件:使用 root.render 方法将 React 组件树渲染到根节点中,从而启动 React 应用。
http://www.lryc.cn/news/497031.html

相关文章:

  • 【人工智能】探索自然语言生成(NLG):用GPT生成文本
  • 挑战用React封装100个组件【004】
  • vue elementui layout布局组件实现规则的弹性布局
  • SpringBoot Web 开发请求参数
  • python7学习笔记-循环、迭代、pass
  • LeetCode78:子集
  • Linux 安装scala
  • 重生之我在异世界学编程之C语言:深入指针篇(上)
  • linux centos7 yum命令失效
  • mac访达打开终端
  • 【MySQL 进阶之路】索引的使用
  • 网络编程相关 API 学习
  • python使用python-docx处理word
  • 【笔记2-1】ESP32:基于vscode的espidf插件的开发环境搭建
  • 集成网关 -- 新节点的开发说明
  • 【Gitlab】CICD使用minio作为分布式缓存
  • ️️耗时一周,肝了一个超丝滑的卡盒小程序
  • 网络安全审计
  • 论文:IoU Loss for 2D/3D Object Detection
  • 2411mfc,修改按钮颜色
  • 互联网 Java 面试八股文汇总(2025 最新整理)
  • 如何在 Ubuntu 中更新 Linux 内核
  • FilterListenerAjax
  • 27. 移除元素 C++
  • 大模型专栏--Spring Ai Alibaba介绍和功能演示
  • Redis设计与实现第17章 -- 集群 总结2(执行命令 重新分片)
  • 微服务搭建----springboot接入Nacos2.x
  • 3.建立本地仓库及常用命令
  • linux arm下获取屏幕事件(rk3588)
  • 【机器学习】人工智能与气候变化:利用深度学习与机器学习算法预测和缓解环境影响