IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 01-vue3的设计思想、理念和整体架构 -> 正文阅读

[JavaScript知识库]01-vue3的设计思想、理念和整体架构

目录

vue3的设计思想、理念

设计思想

声明式架构

采用虚拟DOM

区分编译时和运行时

Vue整体架构

架构介绍

Monorepo管理项目

Vue3项目结构

?Vue3采用typescript

Vue3开发环境搭建


vue3的设计思想、理念

设计思想

1.Vue3.0 更注重模块上的拆分,在2.0中无法单独使用部分模块,需要引入完整的Vuejs(例如只想使用响应式部分,但是需要引入完整的Vuejs),Vue3中的模块之间耦合度低,模块可以独立使用,拆分模块

2.Vue2中很多方法挂载到了实例中导致没有使用也会被打包(还有很多组件也是一样)。通过构建工具Tree-shaking机制实现按需引入,减少用户打包后体积。nextTick等等都拆分为了单独的组件。?重写API。

3.Vue3允许自定义渲染器,拓展能力强。不会发生以前的事前,改写Vue源码改造渲染方式。不需要在源码的基础上进行改造了。拓展更方便

依然保留Vue2的特色

声明式架构

Vue3依旧是声明式的框架,用起来简单。

  • 早在JQ的时代编写的代码都是命令式的,命令式框架重要特点就是关注过程。
  • 声明式框架更加关注结果。命令式的代码封装到了Vuejs中,过程靠Vuejs来实现。

声明式代码更加简单,不需要关注实现,按照要求填代码就可以(给原材料就出结果)

/* 命令式编程 */

let numbers = [1,2,3,4,5];
let total = 0;
for(let i = 0;i<numbers.length;i++){
    total += numbers[i]  /* 关注了过程 */
}
console.log(total)

/* 声明式 */

let total2 = numbers.reduce(function(memo ,current){
    return memo + current
},0)

console.log(total2)

采用虚拟DOM

传统更新界面,拼接一个完整的字符串innerHTML全部重新渲染,添加虚拟DOM后。可以比较新旧虚拟节点,找到变化再进行更新。虚拟DOM就是一个对象,用来描述真实DOM的

const vnode = {
    _v_isVNode: true,
    _v_skip: true,
    type}

区分编译时和运行时

  • 我们需要有一个虚拟DOM,调用渲染方式将虚拟DOM渲染成真实DOM(缺点就是虚拟DOM编写麻烦)
  • 专门写一个编译时可以将模板编译成虚拟DOM(在构建的时候进行编译性能更高,不需要在运行的时侯进行编译,而且Vue3在编译中做了很多优化)

Vue整体架构

架构介绍

Monorepo管理项目

Monorepo是管理项目代码的一个方式,指在一个项目仓库(repo)中管理多个模块/包(package)。Vue3源码采用monorepo方式进行管理,将模块拆分到package目录中。

  • 一个仓库可维护多个模块,不用导出找仓库
  • 方便版本管理和依赖管理,模块之间的引用,调用都非常方便

Vue3项目结构

?Vue3采用typescript

Vue2采用flow来进行类型检测(Vue2中对TS支持并不太好),Vue3源码采用typescript来进行重写,对Ts的支持更加友好。

Vue3开发环境搭建

搭建Monorepo环境

Vue3中采用?pnpm workspace 来实现 monorepo(pnpm是快速、节省磁盘空间的包管理器。主要采用符号链接的方式管理模块)

全局安装pnpm

npm install pnpm -g # 全局安装pnpm

pnpm init -y # 初始化配置文件

创建 .npmrc文件

shamefully-hoist =  true

解决pnpm的幽灵依赖问题,羞耻提升

安装所需要的依赖

pnpm install typescript minimist esbuild -w

-w表示安装在根目录下。此时文件夹下的每个package都是个单独的包,所以需要加 -w 说明这是每个包都需要的依赖,安装在根目录下。

pnpm tsc --init? // 初始化 typescript

后续配置参考源码中的配置

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:13:50  更:2022-07-17 16:16:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/11 12:38:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码