React 包:
react:公用方法(外部暴露),宿主环境无关react-reconciler:协调器(核心逻辑),宿主环境无关shared:公用辅助方法及类型定义(内部使用),宿主环境无关- 各种宿主环境的包
react-dom:浏览器宿主环境
JSX 转换属于 react 包
JSX 转换是什么
包括两部分:
- 编译时:由
babel实现,将 JSX 代码编译成对应方法调用jsxDEV:React17 后,Dev 环境jsx:React17 后,Prod 环境React.createElement:React17 前
- 运行时:对应方法的实现
如:
<div id="div">123</div>会被 babel 编译成:
import { jsx as _jsx } from "react/jsx-runtime";
/*#__PURE__*/_jsx("div", {
id: "div",
children: "123"
});
// 或
/*#__PURE__*/React.createElement("div", { id: "div" }, "123");