petite-vue源码剖析-沙箱模型

2022-04-20
阅读 8 分钟
2.1k
在解析v-if和v-for等指令时我们会看到通过evaluate执行指令值中的JavaScript表达式,而且能够读取当前作用域上的属性。而evaluate的实现如下:
封面图

petite-vue源码剖析-逐行解读@vue-reactivity之effect

2022-04-19
阅读 14 分钟
1.8k
当我们通过effect将副函数向响应上下文注册后,副作用函数内访问响应式对象时即会自动收集依赖,并在相应的响应式属性发生变化后,自动触发副作用函数的执行。
封面图

petite-vue源码剖析-逐行解读@vue-reactivity之Map和Set的reactive

2022-04-15
阅读 12 分钟
5.1k
本篇我们会继续探索reactive函数中对Map/WeakMap/Set/WeakSet对象的代理实现。Map/WeakMap/Set/WeakSet的操作由于WeakMap和WeakSet分别是Map和Set的不影响GC执行垃圾回收的版本,这里我们只研究Map和Set即可。Set的属性和方法size: number 为访问器属性(accessor property),返回Set对象中的值的个数add(value: any): Se...
封面图

petite-vue源码剖析-逐行解读@vue/reactivity之reactive

2022-03-22
阅读 14 分钟
2.2k
在petite-vue中我们通过reactive构建上下文对象,并将根据状态渲染UI的逻辑作为入参传递给effect,然后神奇的事情发生了,当状态发生变化时将自动触发UI重新渲染。那么到底这是怎么做到的呢?@vue/reactivity功能十分丰富,而petite-vue仅使用到reactive和effect两个最基本的API,作为入门本文将仅仅对这两个API进行源码...
封面图

petite-vue源码剖析-优化手段template详解

2022-03-16
阅读 3 分钟
1.8k
什么是<template>元素?<template>是2013年定稿用于提供一种更统一、功能更强大的模板本存放方式。具体表现为通过<template>元素属性content获取已实例化的HTML元素(不是字符串而已) {代码...} <template>以及其子节点均不可视<template>下的img元素的src属性即使有值也不会发出资源请求&...
封面图

petite-vue源码剖析-ref的工作原理

2022-03-15
阅读 2 分钟
1.9k
ref内部的工作原理十分简单,其实就是将指令ref、:ref或v-bind:ref标识的元素实例存储到当前作用域的$refs对象中,那么我们就可以通过this.$refs获取对应的元素实例。但由于作用域继承上有点小窍门,所以我们能从this.$refs获取的元素实例还是需要注意一下。下面让我为你一一道来吧!
封面图

petite-vue源码剖析-双向绑定`v-model`的工作原理

2022-03-14
阅读 9 分钟
4.6k
双向绑定v-model不仅仅是对可编辑HTML元素(select, input, textarea和附带[contenteditable=true])同时附加v-bind和v-on,而且还能利用通过petite-vue附加给元素的_value、_trueValue和_falseValue属性提供存储非字符串值的能力。
封面图

petite-vue源码剖析-事件绑定`v-on`的工作原理

2022-03-11
阅读 3 分钟
2.2k
在书写petite-vue和Vue最舒服的莫过于通过@click绑定事件,而且在移除元素时框架会帮我们自动解除绑定。省去了过去通过jQuery的累赘。而事件绑定在petite-vue中就是一个指令(directive),和其他指令类似。
封面图

petite-vue源码剖析-属性绑定`v-bind`的工作原理

2022-03-08
阅读 5 分钟
2.4k
指令(directive)其实就是一个接受参数类型为DirectiveContext并且返回cleanup函数或啥都不返回的函数。那么DirectiveContext有是如何的呢?
封面图

petite-vue-源码剖析-v-for重新渲染工作原理

2022-03-07
阅读 7 分钟
1.7k
在《petite-vue源码剖析-v-if和v-for的工作原理》我们了解到v-for在静态视图中的工作原理,而这里我们将深入了解在更新渲染时v-for是如何运作的。
封面图

petite-vue源码剖析-v-if和v-for的工作原理

2022-03-07
阅读 9 分钟
1.9k
调用mount为<div v-scope="App"></div>构建根块对象rootBlock,并将其作为模板执行解析处理;
封面图

petite-vue源码剖析-从静态视图开始

2022-03-04
阅读 7 分钟
1.6k
代码库结构介绍examples 各种使用示例scripts 打包发布脚本tests 测试用例srcdirectives v-if等内置指令的实现app.ts createApp函数block.ts 块对象context.ts 上下文对象eval.ts 提供v-if="count === 1"等表达式运算功能scheduler.ts 调度器utils.ts 工具函数walk.ts 模板解析若想构建自己的版本只需在控制台...
封面图

petite-vue源码剖析-为什么要读源码?

2022-03-03
阅读 3 分钟
2.5k
根据官方解释,petite-vue是专门为非前后端分离的历史项目提供和Vue相近的响应式开发模式。 与完整的Vue相比最大的特点是,面对数据的变化petite-vue采取直接操作DOM的方式重新渲染。
封面图

Yet Another Intro to Event Loop

2021-10-26
阅读 5 分钟
2.2k
As we tell, there're tons of posts talking about event loop, the basic of the basic knowledge of JavaScript running mechanism.
封面图