Vue设计模式,发布订阅,响应式原理(简略版)

本文介绍了Vue.js的设计模式,重点讲解了Vue如何实现响应式原理,包括数据劫持的Object.defineProperty和Proxy方法。文章指出,Vue利用发布订阅者模式进行数据监听和更新,同时对比了两种数据劫持技术的优缺点。
摘要由CSDN通过智能技术生成

Vue

mvvm框架是什么?

mvvm框架(model-view-viewMode),本质是mvc框架的改进版,mvc框架一旦项目复杂度越来越高,代码量大,维护起来很难,尤其管理层,controller

就有了viewMOdel,有前端人员生成和维护的视图数据层,前端通过从后端获取到的model数据进行转换,封装成view层预期的数据,用来生成view层的视图数据模型

Vue设计模式

vue使用发布订阅者模式,在vue中使用observer和definereactive两个方法结合,对数据递归劫持,用watch这个类来进行监听订阅,dep用于解耦合,当数据变更后触发set方法,之后调用dep.notiify通知视图更新

发布订阅者模式

在这里插入图片描述

<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>Document</title>
</head>
<body>
    <script>
        /* 观察者 */
        class Watcher{
     
            constructor(){
     
                //用来存储事件类型和事件函数的一个对象
                // 进入超市首先推一个小推车
                this._message = {
     }
            }
            //消息订阅
            on(type,fn){
     
                // 想买方便面,我去方便面区域看看有没有想要买的牌子
                //往消息盒子当中存储事件类型与事件函数
                // 找到方便面区域了
                if(this._message[type]){
     
                    //第二次往后存储事件类型和事件函数
                    // 把康师傅放进小推车里
                    this._message[type].push(fn)
                }else{
     
                    //第一次存储事件类型与事件函数
                    this._message[type] = [fn]
                }
            
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抬头第一眼,是天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值