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 之整体架构介绍
      • Mini React 之JXS介绍及实现
      • Mini React 之渲染器
      • Mini React 之组件实现
        • 1. React组件
        • 2. 函数式组件
          • 2.1 函数式组件的特点
          • 2.2 函数式组件的渲染过程
    • 由浅到深的React合成事件
    • setState的执行机制
  • 框架
  • React
  • 手写Mini React
xujian
2022-06-16

Mini React 之组件实现

# 1. React组件

上一章我们讲了如何将虚拟DOM渲染成真实DOM并挂载,只聊了普通HTML元素的渲染。这一章我们来实现一下组件化相关的功能。组件化是React最核心的功能之一,它可以将UI切分成一些独立的、可复用的组件,这样你就只需专注于构建每一个单独的部件。通过拼装组件来形成页面和应用,就像搭积木一样。那么有没有想过,组件到底产出什么呢?它的种类有哪些呢?

我们可以联想一下平时写组件时的用法,将组件声明在JSX里,然后传入对应的属性,就可以在页面上渲染出对应的组件。通过ReactDOM.render(...)即可渲染组件,在上一章中我们知道ReactDOM.render的作用就是把虚拟DOM渲染成真实DOM,所以我们可以得出,组件的产出一定是虚拟DOM。

那么组件是如何生成虚拟DOM呢?在React里面组件的分为两种:函数组件和类组件。下面我们来说一下他们分别是如何声明和挂载的。

# 2. 函数式组件

# 2.1 函数式组件的特点

  • 函数组件接收一个单一的props对象并返回了一个只有一个根节点的React元素
  • 组件名称必须以大写字母开头,用于区分普通元素还是React组件
  • 组件必须在使用的时候定义或引用它
  • React元素不但可以是DOM标签,还可以是用户自定义的组件
  • 当 React 元素为用户自定义组件时,它会将 JSX 所接收的属性(attributes)转换为单个对象传递给组件,这个对象被称之为props

# 2.2 函数式组件的渲染过程

functionComponent

编辑 (opens new window)
上次更新: 2022/06/30, 18:16:38
Mini React 之渲染器
由浅到深的React合成事件

← Mini React 之渲染器 由浅到深的React合成事件→

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