sunnyxujian's blog sunnyxujian's blog
首页
  • JavaScript
  • CSS
  • HTML和浏览器
  • Vue
  • Vue3
  • React
  • 基础知识
  • webpack
  • rollup
  • vite
  • 其他
  • Nodejs
  • 网络
  • TypeScript
  • 架构设计
  • 性能优化
  • 数据结构和算法
  • JavaScript教程 笔记
  • ES6 教程 笔记
  • TypeScript 从零实现 axios
  • Git学习 笔记
  • 渲染器原理
  • TypeScript 笔记
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网站
  • 资源
  • Vue资源
  • 友情链接
  • 分类
  • 标签
  • 归档
  • 友链
  • 关于
GitHub (opens new window)

xujian

劝君惜取少年时。
首页
  • JavaScript
  • CSS
  • HTML和浏览器
  • Vue
  • Vue3
  • React
  • 基础知识
  • webpack
  • rollup
  • vite
  • 其他
  • Nodejs
  • 网络
  • TypeScript
  • 架构设计
  • 性能优化
  • 数据结构和算法
  • JavaScript教程 笔记
  • ES6 教程 笔记
  • TypeScript 从零实现 axios
  • Git学习 笔记
  • 渲染器原理
  • TypeScript 笔记
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网站
  • 资源
  • Vue资源
  • 友情链接
  • 分类
  • 标签
  • 归档
  • 友链
  • 关于
GitHub (opens new window)
  • Vue

  • Vue3

  • React

    • 手写Mini React

      • Mini React 之声明式渲染框架
      • Mini React 之整体架构介绍
        • 1. 项目结构
        • 2. 项目介绍
          • 2.1 依赖介绍
          • 2.2 文件功能
      • Mini React 之JXS介绍及实现
      • Mini React 之渲染器
      • Mini React 之组件实现
    • 由浅到深的React合成事件
    • setState的执行机制
  • 框架
  • React
  • 手写Mini React
xujian
2022-06-07

Mini React 之整体架构介绍

mini-react.png

# 1. 项目结构

mini react

# 2. 项目介绍

# 2.1 依赖介绍

devDependencies:

{
  "@babel/core": "^7.16.0",
  "@babel/plugin-transform-react-jsx": "^7.17.12",
  "babel-loader": "^8.2.3",
  "html-webpack-plugin": "^5.5.0",
  "webpack": "^5.63.0",
  "webpack-cli": "^4.9.1",
  "webpack-dev-server": "^4.9.0"
}
1
2
3
4
5
6
7
8
9

我们的项目打包工具使用webpack,编译转换依赖于babel平台。使用@babel/plugin-transform-react-jsxbabel插件做JSX转换,我们重点是理解React的原理而不是编译部分,所以JSX转换插件直接使用官方插件,后面可以再手动实现一下这个JSX转换插件。然后使用babel-loader编译js文件。使用html-webpack-plugin + webpack-dev-server搭建开发服务器,便于我们验证实际的渲染结果。

# 2.2 文件功能

  • jsx.js:jsx语法糖相关逻辑,主要实现@babel/plugin-transform-react-jsx插件所需要的React.createElement方法,用于将jsx语法糖转成拟DOM。
  • element.js:声明所有需要用到的React元素标识及一些常量。
  • component.js:类组件实现及更新器相关实现。
  • react-dom.js:runtime-dom相关逻辑,将虚拟DOM渲染(mount)成真实dom,根据拟DOM对真实dom进行增、删、改、查操作。
  • react.js:runtime-core相关逻辑,主要是一些React的核心方法。
  • event.js:React事件处理逻辑,包括事件缓存、事件代理、事件派发等。
  • hooks.js:react hooks功能的基本实现,主要理解hooks原理和执行机制。
  • utils.js:存放一些工具函数。
编辑 (opens new window)
上次更新: 2022/06/29, 14:09:28
Mini React 之声明式渲染框架
Mini React 之JXS介绍及实现

← Mini React 之声明式渲染框架 Mini React 之JXS介绍及实现→

最近更新
01
😍Vue3和React都在用的函数式编程,学起来~
02-03
02
链表
11-24
03
基础类型
11-18
更多文章>
Theme by Vdoing | Copyright © 2020-2023 xujian | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式