这本vue3编译原理开源电子书,初中级前端竟然都能看懂

news2024/9/17 9:03:41

前言

众所周知vue提供了很多黑魔法,比如单文件组件(SFC)、指令、宏函数、css scoped等。这些都是vue提供的开箱即用的功能,大家平时用这些黑魔法的时候有没有疑惑过一些疑问呢。

  • 我们每天写的vue代码一般都是写在*.vue文件中,但是浏览器却只认识html、css、js等文件类型,明显是不认识*.vue文件的,我们写的*.vue文件是如何在浏览器中运行的呢?

  • vue提供了很多指令,比如大家常用的v-model语法糖指令,那你知道这个所谓的语法糖指令到底是什么东西吗?

  • 文档上说了宏函数不需要import导入,那运行的时候函数都没地方定义不就报错了吗?

  • 还有css scoped是如何实现样式隔离的呢?

说到这里不得不推荐一本开源电子书:vue3编译原理揭秘。上面这些问题的答案全部都在这本电子书中,更加难能可贵的是这本书通熟易懂到初中级前端都能看懂。这本书的核心思想是通过debug的方式带你搞清楚vue3中的编译黑魔法。

电子书地址: https://vue-compiler.iamouyang.cn/

book

收费吗?

首先回答这个大家最关注的问题,这本vue3编译原理揭秘开源电子书收费吗?

既然都开源了,当然是 免费的,只求你的一个star。GitHub地址: https://github.com/iamouyang21/vue3-compiler 。

并且还有一个配套的vue源码群,群也是不收费的。
wx

看完这本书我能学到什么

vue因为学习曲线平缓,有其他框架使用经验的同学,基本花上半天时间,看一下文档就可以直接上手。

之所以这么好上手是因为vue提供了很多黑魔法,比如单文件组件(SFC)、指令、宏函数、css scoped等。我们只需要按照官方文档的要求来写就可以轻松上手一个vue项目。

也正是因为vue内部封装了太多API,导致很多同学的技术水平一直停留在只会使用API上,也就是常说的“知其然而不知其所以然”。有时遇见一些特别复杂的需求时,以当前的技术水平,想要去实现这些需求就非常困难了。

这本书可以打破你当前的困境:技术水平一直停留在只会使用API上。看完这本书可以让你对vue编译的认知有质的提升,并且由于本书非常详细。详细到debug源码的每一个步骤都写出来了,你完全可以按照本书的步骤自己去debug读源码。所以这本书不光是教你vue编译原理的知识,更多的是教会你如何自己去通过debug的方式读懂源码。

这就完了?

不,看完本书你还可以在面试的时候去装X。

如果你是候选人,当其他候选人还在和面试官聊烂大街的vue响应式原理时,你上来就和其他人不一样,直接聊看着很神秘的vue编译原理,这无疑在面试中可以加不少分的。

如果你是面试官,有时会遇见一些精通vue的候选者。这些候选者有的是“真精通”,有的却是看了一些常见的vue源码文章的“假精通”。这时你就可以用vue编译原理的问题试探出候选者的真实水平。

50k

这本书讲了哪些东西?

本书分为4大章节:

  • 第一章节是教你如何查看源码、以及一个vue文件如何编译成js文件的全流程。

    start

  • 第二章节是带你搞清楚编译时是如何处理template模块的内容,以及最终如何生成render函数。

    template

  • 第三章节是带你搞清楚编译时是如何处理script模块的内容,以及一些常用的宏函数是如何处理的。

    script

  • 第四章节是带你搞清楚编译时是如何处理style模块的内容,以及如何实现css scoped

    style

最后

vue3编译原理揭秘这本电子书完全免费,并且还有一个配套的vue源码群,群也是不收费的。只求你的一个star

GitHub地址: https://github.com/iamouyang21/vue3-compiler

电子书地址: https://vue-compiler.iamouyang.cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型面试之LoRA

LoRA的解释:一种高效微调预训练神经网络的方法 LoRA 解决的问题: 🔸 2021年初,微软与OpenAI合作探索GPT-3的商业可行性。 🔸 发现仅仅通过提示(prompting)不足以完成生产任务,例如…

C++:标准模板库(STL)介绍

1.STL基本概念 从C到C,C语言的核心优势之一就是便于软件的重用。前面我们提到过C程序的面向对象思想,即继承和多态、标准类库等可以实现重用。除此之外,通过泛型程序设计(generic programming)的思想,即模板机制以及标准模板库ST…

微软:警惕利用VMware ESXi进行身份验证绕过攻击

微软于7月29日发布警告,称勒索软件团伙正在积极利用 VMware ESXi 身份验证绕过漏洞进行攻击。 该漏洞被追踪为 CVE-2024-37085,由微软安全研究人员 Edan Zwick、Danielle Kuznets Nohi 和 Meitar Pinto 发现,并在 6 月 25 日发布的 ESXi 8.0 …

Vatee万腾平台:助力企业数字化转型的坚实伙伴

在数字化浪潮席卷全球的今天,企业数字化转型已成为不可逆转的趋势。面对这一挑战与机遇并存的时代,Vatee万腾平台凭借其深厚的行业洞察、先进的技术实力和丰富的实践经验,成为了众多企业数字化转型道路上的坚实伙伴。 一、定制化解决方案&…

锐捷RCNA | ARP协议原理与应用与DHCP协议原理及应用

一、ARP协议原理与应用 OSI参考模型将网络划分为7层,IP地址工作在第三层网络层中,MAC地址工作在第二层数据链路层。 在以太网发送IP数据包时,先封装网络层的包头再封装数据链路层的包头,由于在发送时只知道目标IP地址而不知道MA…

神经网络实现数字识别(机器学习)

我们有很多0到9的图片集,我们要训练一个网络来自动识别数字,我们有20*20的图像5000个。 把图片展平,这样每个记录就有400个特征,最后一列是标签值,1-9表示数字1-9;10表示数字0。数据集:ex_2/ex…

【设计模式:单例模式】

单例模式的特点: 单例类只允许一个实例单例类必须自己创造自己的唯一实例单例类必须给所有其他对象提供这一实例 单例模式底层如何实现: 私有化构造函数,类外部无法创造类对象,实现了单例类只允许有一个实例对象的特点类定义中含有…

vue3+g2plot之瀑布图

基础瀑布图 - 每月收支情况 效果预览: 核心代码: import {Waterfall } from @antv/g2plot;const data = [{type: 日用品, money: 120 },{type: 伙食费, money: 900 },{type: 交通费, money: 200 },{type: 水电费, money: 300 },{type: 房租, money: 1200 },{type: 商场消…

MyBatis批量更新:报错The error occurred while setting parameters

使用mybatis批量更新时,报以下错误。反复检查过mysql语句没有任何问题。而且本地可以正常执行,生产环境却报错。起初怀疑是数据表,把生产环境表导入本地测试后依然没有问题。数据表没问题就定位到数据库,先检查本地数据库链接与生…

家庭教育系列—剑桥通用英语五级考试介绍

文章目录 1. 背景介绍2. 详细介绍2.1 **KET(Key English Test):基础英语考试**2.2 **PET(Preliminary English Test):初级英语考试**2.3 **FCE(First Certificate in English)&#…

自定义类加载器 1.继承ClassLoader 2.findClass 3.defineClass

一、自定义类加载器 1.自定义 2.使用 总结:这种情况,由于loadClass会采用双亲委派机制,如果类已经被加载,那么就不会重复加载。 二、热部署的实现原理 使用loadClass,发现加载是同一个类 使用findClass实现&#xf…

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation

【arxiv 2024】Latte: Latent Diffusion Transformer for Video Generation 一、前言Abstract1 Introduction2 Related Work3 Methodology3.1 Preliminary of Latent Diffusion Models3.2 The model variants of Latte3.3 The empirical analysis of Latte3.3.1 Latent video c…

测试环境领域到测试环境产品

作者:攻心 去年之前,阿里巴巴的淘天集团测试环境是以领域方式运作:不局限测试环境治理本身,从测试模式方法论及用好测试环境思路引领集团测试环境治理。领域运作最难的是“统一思想”。业务进一步细分调整后,测试环境治…

Xilinx FPGA:vivado SPI实现FLASH通信

一、实验要求 要求使用SPI协议实现对flash芯片的页编程、读操作、页擦除等功能。 二、模块划分 大概的时序图: 三、程序设计 (1)接收端模块 timescale 1ns / 1ps module uart_rx(input sys_clk ,input …

Mongodb新增文档、查询文档、更新文档、删除文档

文章目录 1、新增文档1.1、进入容器1.2、向集合插入一个新文档1.3、查询文档1.4、向集合插入一个或者多个文档 2、查询文档2.1、查询年龄等于202.2、查询年龄是20的男性2.3、查询年龄是20或者性别是男2.4、查询年龄小于232.5、查询年龄小于等于232.6、查询大于等于232.7、查询年…

新型蜜罐有哪些?未来方向如何?

前言:技术发展为时代带来变革,同时技术创新性对蜜罐产生推动力。 一、新型蜜罐的诞生 技术发展为时代带来变革,同时技术创新性对蜜罐产生推动力,通过借鉴不同技术思想、方法,与其它技术结合形成优势互补,…

Docker 搭建 Minio 容器

Docker 搭建 Minio 容器 (完整详细版) 简介: Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。 例如图片、视频、日…

CentOS通过rsync实现文件同步(daemon方式)

rsync介绍 rsync是Liunx下的远程数据同步工具,可快速同步多台服务器间的文件和目录,并可实现增量同步以减少数据的传输。 rsync有两种常用的认证方式,一种是rsync-daemon方式,另外一种是ssh方式。 daemon 方式与 ssh 方式相比有…

Nginx代理路径被吃

Nginx代理路径被吃的情况 日常工作中经常使用nginx反向代理一些资源,有时正常代理,发现代理不过去。 验证被吃调location情况 通过浏览器访问: https://zhao138969.com/LinuxPackage/Python/SelectDocker location /LinuxPackage { proxy…

深度学习Day-27:生成对抗网络(GAN)入门

🍨 本文为:[🔗365天深度学习训练营] 中的学习记录博客 🍖 原作者:[K同学啊 | 接辅导、项目定制] 要求: 了解什么是生成对抗网络生成对抗网络结构是怎么样的学习本文代码,并跑通代码调用训练好…