通俗解释import React from "react"与import ReactDOM from "react-dom"的含义
React 两行导入语句通俗解释
你在node_modules里看到的react和react-dom是React官方拆分的两个独立核心包,功能完全拆分,两行导入就是分别引入这两个包的能力:
第一行:import React from "react";
这行引入的是React的跨平台通用内核,它不关心你把代码运行在什么端,只负责React最核心的底层能力:
- 支持组件的定义逻辑,不管是类组件还是函数组件的语法底层都依赖它
- 所有内置Hook(useState、useEffect、useRef等)都在这个包里导出
- 负责虚拟DOM的diff计算,判断组件更新时需要修改哪些内容
- 你写的JSX语法最终会被编译为
React.createElement()调用,所以React 17之前的版本不写这行导入,JSX会直接运行报错
第二行:import ReactDOM from "react-dom";
这行引入的是React针对浏览器端的渲染适配层,负责把React内核计算出来的虚拟DOM转换成浏览器能识别的真实DOM节点:
- 最常用的组件挂载方法(React 17及之前的
ReactDOM.render、React 18+的ReactDOM.createRoot)都来自这个包,作用就是把你写的组件挂载到页面上的真实DOM容器(一般是id为root的div) - 提供浏览器端专属API,比如卸载组件的
unmountComponentAtNode、获取组件对应真实DOM的findDOMNode等
方便讲解的通俗类比
可以把React开发流程类比做视频生产:
- React核心包是内容制作团队,负责写脚本、拍素材、剪成片,产出的内容是通用的,不需要关心最终播放渠道
- ReactDOM是电视台的播出团队,负责把制作好的成片转换成符合电视播出标准的信号,最终播出给观众看。如果要换播放端,比如做移动端APP,只需要把ReactDOM换成ReactNative即可,核心内容制作逻辑完全不用改。
内容的提问来源于stack exchange,提问作者Syed Mazhar
相关产品推荐
相关产品推荐

