littlebot
Published on 2025-04-11 / 2 Visits
0

【源码】基于 Vue 框架的 minivue 学习项目

项目简介

本项目实现了最简的 Vue3 模型,主要用于深入学习 Vue3。由于 Vue3 作为工业级库,其源码存在大量处理边缘情况和兼容逻辑的代码,不利于学习者掌握核心内容,因此本项目将 Vue3 源码中的核心逻辑剥离,帮助开发者更轻松地理解 Vue3 的核心逻辑。

项目的主要特性和功能

runtime-core

  • 支持组件类型、element 类型和 Text 类型节点。
  • 可初始化 props,能在 setup 中获取 props 和 context。
  • 支持 component emit、proxy 和最基础的 slots。
  • 可在 render 函数中获取 setup 返回的对象。
  • 实现了 nextTick、getCurrentInstance 和 provide/inject 功能。
  • 支持 $el api 和 watchEffect。

reactivity

  • 实现了 reactive、ref、readonly 和 computed。
  • 具备依赖收集(track)和触发依赖(trigger)功能。
  • 支持 isReactive、嵌套 reactive、toRaw、effect.scheduler、effect.stop、isReadonly、isProxy、shallowReadonly 和 proxyRefs。

compiler-core

可解析插值、element 和 text。

runtime-dom

支持 custom renderer。

runtime-test

支持测试 runtime-core 的逻辑。

infrastructure

支持使用 pnpm 的 monorepo。

安装使用步骤

假设用户已经下载了本项目的源码文件,按以下步骤操作: 1. 打开终端,进入项目目录。 2. 执行构建命令:pnpm build。 3. 通过服务器打开 packages/vue/example/* 下的 index.html 文件查看示例,推荐使用 Live Server

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】