• 猿创征文 | 《深入浅出Vue.js》打卡Day5


    第12章 架构设计与项目结构

    这篇文章带你从宏观的角度了解它内部的运行原理,以下是Vue源码的目录结构,下图目录可能跟源码目录有点差距,但也是八九不离十。

    12.1 目录结构

    在这里插入图片描述
    src/core 目录是Vue.js的核心代码,这部分代码逻辑是与平台无关的,也就是说,它们可以在任何JavaScript环境下运行,比如浏览器、Node.js或者嵌入在原生应用中。

    完整版:构建后的文件同时包含编译器运行时
    编译器:负责将模板字符串编译成JavaScript渲染函数;
    开发环境下使用未压缩的代码,生存环境下使用压缩后的代码。

    12.2 架构设计

    Vue.js的整体结构,分为三个部分:核心代码(全局API、prototype、构造函数)跨平台相关(更多的是渲染相关的功能)公用工具函数(这部分是一些辅助函数,不再单独介绍)
    在这里插入图片描述

    • 其中架构是分层的,最底层是一个普通的构造函数,最上层是一个入口,也就是将一个完整的构造函数导出给用户使用;
    • 最顶层是入口,也可以叫做出口。对于构建工具和Vue.js的使用者来说,这是入口;对于Vue.js自身来说,这是出口。

    我们把上图”程序结构“ 用另外一种表现形式来展示,更清楚的了解它的架构设计,如下图所示:
    在这里插入图片描述
    不同平台有不同的人口,有一些特定于平台的代码会加载到这部分,而底层的核心代码是通用的,可以在任何平台下运行。这里以构建Web平台下运行的文件为例,如果我们构建的是完整版本,那么会选择 Web平台的人口文件开始构建,这个入口文件最终会导出一个vue构造函数。在导出之前,会向 Vue构造函数中添加一些方法,其流程是:先向vue构造函数的prototype属性上添加一些方法,然后向vue构造函数自身添加一些全局API,接着将平台特有的代码导入进来,最后将编译器导入进来。最终将所有代码同vue构造函数一起导出去。

    第13章 实例方法与全局API的实现原理

    上一章知道了Vue.js内部的整体结构,知道了在导出vue构造函数之前会添加一些属性和方法,这篇就来介绍vue构造函数添加的实例方法全局API

    13.1 实例方法

    其中定义了vue构造函数,然后分别调用了initMixin、stateMixin、 eventsMixin、lifecycleMixin和renderMixin这5个函数,并将vue构造函数当作参数传给了这5个函数。
    在这里插入图片描述

    13.2 全局API

    在这里插入图片描述

    想要了解更详细还得要看书,书中自有黄金屋,书中自有颜如玉

    在这里插入图片描述

  • 相关阅读:
    《垃圾回收算法手册 自动内存管理的艺术》——引用计数与垃圾回收器的比较(笔记)
    高并发系统设计架构方案
    django及DRF流程源码分析
    【每日训练】进制转换
    使用kettle采集excel表格中的数据
    redis实战-redis实现异步秒杀优化
    【深度思考】聊聊JDK动态代理原理
    Flutter Web 在《一起漫部》的性能优化探索与实践
    07 数据库查询(1) | OushuDB 数据库使用入门
    C++是否可以使用.获取union、struct中的成员变量的地址
  • 原文地址:https://blog.csdn.net/qq_48701993/article/details/126779197