欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue.js 3.0 源码的组织方式

程序员文章站 2022-06-24 12:27:10
- 源码采用 TypeScript 重写(类型化的语言),这样提升了代码的可维护性,在编码过程中检查类型问题,比如函数传参的类型不匹配提示- 使用 Monorepo 管理项目结构,它能够使用一个项目来管理多个包,把不同代码放到不同的 package 管理,每个功能模块划分明确,模块之间的依赖关系也很明确,并且每个功能模块都可单独测试,单独发布,单独使用packages 目录结构|-- packages |-- compiler-core 和平台无关的编译器 |-- compiler-dom...

- 源码采用 TypeScript 重写(类型化的语言),这样提升了代码的可维护性,在编码过程中检查类型问题,比如函数传参的类型不匹配提示

- 使用 Monorepo 管理项目结构,它能够使用一个项目来管理多个包,把不同代码放到不同的 package 管理,每个功能模块划分明确,模块之间的依赖关系也很明确,并且每个功能模块都可单独测试,单独发布,单独使用

packages 目录结构

|-- packages
  |-- compiler-core 和平台无关的编译器
  |-- compiler-dom  浏览器平台下的编译器,依赖于 compiler-core
  |-- compiler-sfc  单文件组件编译器,依赖于 compiler-core 和 compiler-dom
  |-- compiler-ssr  服务端渲染的编译器,依赖于 compiler-dom
  |-- reactivity    数据响应式系统
  |-- runtime-core  和平台无关的运行时
  |-- runtime-dom   针对浏览器的运行时,处理原生 DOM API 和 事件等
  |-- runtime-test  为测试所编写的轻量级运行时,由于它渲染出来的 DOM 树其实是一个 js 对象,所以这个运行时可以运行在所有的 js 环境里,可以用它来测试渲染是否正确,还可以用于序列化 DOM,触发 DOM 事件,以及记录更新中的某次 DOM 操作
  |-- server-renderer  用于服务端渲染
  |-- shared           vue 内部使用的公共 api
  |-- size-check       私有的包,不会发布到 npm,作用是在 tree-sharking 后检查包的大小
  |-- template-explorer  浏览器里运行的实时编译组件,它会输出 render 函数
  |-- vue  用来构建完整版的 vue,依赖于 compiler 和 runtime

本文地址:https://blog.csdn.net/weixin_40599109/article/details/110940383