# 渲染器原理及实现 完整目录 - [渲染器原理及实现](#渲染器原理及实现) - [1. 编译器和渲染器 API 初探](#1-编译器和渲染器-api-初探) - [Complier 和 Renderer](#complier-和-renderer) - [编译器(Complier)真实场景](#编译器complier真实场景) - [2. 设计 VNode](#2-设计-vnode) - [用 VNode 描述 HTML](#用-vnode-描述-html) - [用 VNode 描述抽象内容](#用-vnode-描述抽象内容) - [区分 VNode 类型](#区分-vnode-类型) - [区分 children 的类型](#区分-children-的类型) - [定义 VNode](#定义-vnode) - [3. 生成 VNode 的 h 函数](#3-生成-vnode-的-h-函数) - [基本的 h 函数](#基本的-h-函数) - [完整的 h 函数](#完整的-h-函数) - [4. 渲染 VNode 的 mount 函数](#4-渲染-vnode-的-mount-函数) - [mount 函数基本原理](#mount-函数基本原理) - [解决 `VNode` 的类型问题](#解决-vnode-的类型问题) - [渲染文本节点](#渲染文本节点) - [渲染标签节点](#渲染标签节点) - [渲染普通有状态组件](#渲染普通有状态组件) - [渲染函数式组件](#渲染函数式组件) - [设置 DOM 属性](#设置-dom-属性) - [渲染子节点](#渲染子节点) - [关联 `VNode` 及其 DOM](#关联-vnode-及其-dom) - [完整实现](#完整实现) - [完整示例](#完整示例) - [5. 实现 patch 函数](#5-实现-patch-函数) - [patch 的作用](#patch-的作用) - [patch 函数实现](#patch-函数实现) - [比较 props](#比较-props) - [比较 children](#比较-children) - [完整实现](#完整实现) - [完整示例](#完整示例) - [6. patch 函数优化](#patch-函数优化) - [准备工作](#准备工作) - [简单的 diff 算法](#简单的-diff-算法) - [优化版本的 diff 算法](#优化版本的-diff-算法) - [新增节点](#新增节点) - [删除节点](#删除节点) - [关于核心 diff 算法](#关于核心-diff-算法) - [Vue 2 diff 算法](#vue-2-diff-算法) - [Vue 3 diff 算法](#vue-3-diff-算法) 本章节将带你实现Vue 3的渲染器功能,分为如下几部分来讲解。 ## 1. 编译器和渲染器 API 初探 [点此学习](./1.API.md) ## 2. 设计 VNode [点此学习](./2.VNODE.md) ## 3. 生成 VNode 的 h 函数 [点此学习](./3.HFUNCTION.md) ## 4. 渲染 VNode 的 mount 函数 [点此学习](./4.MOUNT.md) ## 5. 实现 patch 函数 [点此学习](./5.PATCH.md) ## 6. patch 函数的优化 [点此学习](./5.DIFF.md) [下一章 - Reactivity响应式设计](../chapter4/OVERVIEW.md)