vue @click 赋值_前端面试准备---Vue篇

本文深入探讨Vue的MVVM模式,重点讲解数据双向绑定的实现,包括Object.defineProperty的使用,发布-订阅模式,以及Vue如何通过Observer、Compile和Watcher实现数据变化到视图的同步。同时,介绍Vue的生命周期、虚拟DOM、vue-router和Vuex的基础知识。
摘要由CSDN通过智能技术生成

本文主要从下边几个方面复习Vue知识点:

1. MVC && MVVM  
2. 数据双向绑定
3. Vue的生命周期
4. 虚拟dom的实现原理
5. vue-router
6. Proxy
7. vuex

MVC && MVVM

M -- model层,代表数据模型

V -- view层,代表视图层,UI展示

C -- control层,控制层,处理复杂的业务逻辑

VM-- viewModel层,一个同步view和model的对象,其实可以理解为数据双向绑定

Vue就是一种MVVM模式的框架

Vue数据双向绑定

所谓数据双向绑定,就是指视图层和数据层相互影响,比如input框输入数据,存储的数据发生相应的变化;当给存储数据的数据重新赋值时,input框的值也会变。

实现双向数据绑定主要是通过数据劫持+发布订阅者模式,劫持各个属性的set和get,在数据发生变化的时候发布给订阅者,触发相应的回调。

真正靠的是Object.defineProperty这个属性

说到这个原理,可以先来了解一下发布-订阅模式。

  • 发布-订阅模式:

开始我对这个模式也有点不理解,但是看到这个文章的一个比喻瞬间就理解了。

其实这个发布订阅模式就跟平时我们常见的订阅微信公众号的模式是一样的。

  1. 整个发布订阅模式就像一个平台,让用户可以发生订阅和发布的操作,也就类似于微信公众号平台
  2. 订阅者可以订阅多个操作,就像我们可以订阅多个公众号一样,但是需要提供给平台我们要订阅的名称,以及订阅者自己的一些信息。
  3. 作为发布者,其实就像一个公众号,他不关心具体的订阅者是谁,只要订阅了的用户都会收到发布的信息。整个发布操作需要告知平台,是哪个公众号需要发布,发布什么信息。
  4. 订阅者还可以取消订阅,那么平台需要知道,发起取消订阅的用户是哪个,还有取消的公众号的名称是什么。

那么一个简单的发布订阅模式就形成了,下边话不多说,直接上代码:

const SubPub = function() {
    
    // 用Object格式,可以通过value存储订阅者的一些信息
    // 订阅器 --- 类似于微信公众号这个平台,每一个元素类似于一个公众号,key值为公众号的名字,value值记录订阅公众号的人;
    this._observer = {};
}

SubPub.prototype = {
    
    // 订阅函数,需要提供我要订阅的公众号名称,以及自己的姓名
    subscribe: function(type, callback) {
    
        const self = this;
        if(Type(callback) !== '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值