10-Vue从入门到手撕

文章探讨了学习Vue的顺序,强调了前置知识如H5、CSS3、ES6和网络基础的重要性。接着深入到Vue的核心特性——数据响应式,解释了如何通过Object.defineProperty()实现数据变化自动更新界面,并介绍了Observer进行对象属性的观察以及在数据变化时自动调用相关函数的机制。最后提到了输入框的双向数据绑定,总结了数据响应式的本质是数据变化驱动相关函数的自动执行。
摘要由CSDN通过智能技术生成

什么时候可以开始学习Vue?

学习路线:H5 + CSS3 --->  ES6  --->  网络  ---> 第三方库  --->  工程化  --->  Vue

不经过前面的铺垫是无法学习vue的,就算学了还得倒回去补知识点

展现Vue

Vue源码分析,走进作者的内心世界

创建Vue实例

let vm = new Vue();

配置对象,数据

let vm = new Vue({
	/* 配置对象 */
	el: '.container',
	data: {
		title: '陶冬手机',
	},
});

Vue告诉我们界面和数据是分开的,在开发中只需要关注两件事,一个是界面数据长什么样子,一个是界面是如何根据数据生成出来的,数据决定了界面长什么样子

数据响应式

低段位:数据的变化会引发界面的自动更新

高段位:?

如果数据的显示通过调用某函数来执行,改变数据,怎么让界面同步?

调用依赖这个数据的函数就可以实现界面更新,但每次改变数据都要手动调用才能更新界面,太麻烦了

所以,可不可以数据改变让它自动调用所依赖的函数完成界面的更新,这样就实现了数据和界面的统一。

怎么实现?

Object.defineProperty()数据劫持

将属性值赋值给中间变量,在get函数中返回中间变量

在set函数中重新赋值,让参数 = 中间变量,调用依赖函数

 不通用,所以需要把对象的所有属性观察起来

Observe观察对象的所有属性

 

 

 遍历每一个属性,并对每个属性使用Object.defineProperty()劫持

自动调用依赖该属性的函数

set函数结合get函数

我们不知道哪些函数依赖该属性,怎么办?

先理解,这里的依赖指的是什么?

指的就是某个函数在运行期间用到了这个属性,再准确一点来说,某个函数在运行期间用到了这个get方法

get函数,依赖收集, 记录:是哪个函数在用我

set只知道重新赋值,并不知道是哪个函数在用这个属性,但是get知道

set函数,派发更新,运行:执行用我的函数

核心思路:

在get函数中,为每个属性建立一个数组

在set函数中,遍历调用每个函数

遍历调用每个函数时,同一个函数没必要调用两次

保证数组里函数的唯一,所以函数组成的数组用set去重,或者用includes判断

 set的做法

 includes的做法

 处理abc,是哪个函数在调用

在调用之前,把运行的这些函数名赋值给全局变量,调用该函数,再把变量赋值为null

 

 

 

input双向数据绑定

结论,数据响应式本质是数据变化时会自动运行相关的函数

低段位:数据的变化会引发界面的自动更新

高段位:他的本质是数据变化时会自动运行依赖该属性的函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值