Amadeus's blog Amadeus's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Amadeus

起风了,唯有努力生存!
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • TypeScript笔记

  • 前端工程化

  • 面试

  • 小程序

  • Vue3源码解析

    • Vue3
      • 响应系统Reactivity
    • 设计模式

    • NestJS笔记

    • JavaScript文章

    • Vue文章

    • 学习笔记

    • 前端
    • Vue3源码解析
    Amadeus
    2023-02-09
    目录

    Vue3

    # Vue3

    # 1.声明式VS命令式

    声明式:标签内的值的设置并不是显式的,具体如何实现是不可知的,是Vue框架内部设定的

    <div>{{msg}}</div>
    
    1

    命令式:标签内的值的设置是显示的,可以通过document.getElementByTags('div').innerHTML=${msg}进行设置

    document.getElementByTags('div').innerHTML = 'msg'
    
    1

    我们从可维护性和性能上进行两者的比较:

    声明式具有更好的代码可维护性和编码效率,但是声明式的实现依赖于命令式,在性能上是比命令式差的。

    命令式在可维护性和编码效率上要低于声明式,但在性能上优于声明式。

    # 2.企业开发与设计原则

    项目成本和开发体验是企业开发所重点关注的

    项目成本:项目开发周期

    良好的可维护性可以降低企业的开发周期,降低项目维护难度,从而节省了开发成本

    声明式的开发体验更好

    Vue封装了命令式的逻辑,暴露出了声明式的接口

    # 3.Vue设计的三个核心概念

    运行时 runtime

    编译时 compiler

    运行时+编译时 runtime + compiler

    响应性 Reactivity

    # 4.副作用

    使用setter或getter会影响到DOM对象的修改,这就是副作用

    # 5.Vue项目结构

    rollup打包,类似webpack

    项目核心在package

    compiler-core 编译器的核心代码

    compiler-dom 编译器中与浏览器相关的

    compiler-ssr 服务端渲染的核心模块

    compiler-sfc 单文件组件,.vue模块的编译模块

    reactivity 响应性的核心模块

    runtime-core 运行时的核心代码

    runtime-dom 与浏览器相关的运行时代码

    runtime-test 运行时的测试案例

    server-renderer 服务端渲染器

    sfc-playground 单文件组件工具

    shared 公用工具

    vue 项目打包后的dist文件会在这里。测试实例。src暴露入口方法。

    vue-compat vue兼容性和合并代码

    # 6.运行Vue源代码

    使用pnpm安装依赖包

    npm run build构建项目,会在package的vue中生成dist文件

    对vue中的reactive和effect方法进行测试

    在build指令中添加-s即可设置sourcemap,并生成map文件。方便后续Debugger。可以在浏览器的source中看到源码。

    编辑 (opens new window)
    医疗uni-app开发
    响应系统Reactivity

    ← 医疗uni-app开发 响应系统Reactivity→

    最近更新
    01
    最长递增子序列
    04-21
    02
    非递减子序列
    04-21
    03
    全排列
    04-21
    更多文章>
    Theme by Vdoing | Copyright © 2020-2024 Amadeus | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式