vue技术栈(2)

软件架构模式

MVC 

 概述:传统的MVC指的是,用户操作会请求服务端路由,路由会调用对应的控制器来处理,控制器会获取数据,将结果返回给前端,页面重新渲染。

1.视图(VIew):用户界面。

2.控制器(Controller):业务逻辑。

3.模型(Model):数据保存(数据库访问)。

 MVVM

        概述:在MWVM模式中,View(视图)和Model(数据)是不可以直接通讯的,在它们之间存在着ViewModel这个中间介充当着观察者的角色。当用户操作View(视图), ViewModel感知到变化,然后通知Model发生相应改变;反之当Model(数据)发生改变,ViewModel也能感知到变化,使View 作出相应更新。这个一来一回的过程就是我们所熟知的双向绑定。

         Model模型层,泛指后端进行的各种业务逻辑处理和数据操控,主要围绕数据库系统展开(ajax数据)

         view视图层:负责将数据模型转化为UI展示出来,可以简单的理解为HTML页面

         ViewMode视图模型层:用来连接Model和View,是Model和vView之间的通信桥梁(vue的核心)

MVVM的主要核心就是双向绑定 

 数据绑定

         数据绑定(英语:Data binding)是将"提供器”的数据源与“消费者"绑定并使其同步的一种通用技术。这通常用两种不同语言的数据/信息源完成,如XML数据绑定。在UI数据绑定中,相同语言但不同逻辑功能的数据与信息对象被绑定在一起((例如Java UI元素到ava对象)。

vue如何实现双向绑定 

         注意这里的双向绑定功能指的是 ViewModal<===>View,因为Modal层不是vue来实现,我们可以不管(但要注意MVM模式双向绑定还有这种情况modal<===>ViewModal)

         Vue是数据劫持和观察者模式结合的一种数据绑定方式

         数据劫持+事件实现数据双向绑定

         v-model只是一个语法糖,并不是等同于双向数

 

 变化侦测

 对象的侦测

         基于Object.defineProperty方法,递归调用这个方法去初始化data的属性

 数组的侦测

         使用了函数劫持的方式,重写了数组的方法,Vue将data中的数组进行了原型链重写,指向了自己定义的数组原型方法。这样当调用数组api时,可以通知依赖更新。如果数组中包含着引用类型,会对数组中的引用类型再次递归遍历进行监控。这样就实现了监测数组变化

         索引不会去侦测,所以官方采用vue.$set去修改数组元素才会触发更新

Vue响应式原理 

 什么是响应式:        数据改变,视图自动更新

实现原理: 

        主要通过Object.defineProperty + 观察者模式实现的

        Object.defineProperty里面的get,用于依赖收集

        Object.defineProperty里面的set,用于派发更新

        每个data声明的属性,都拥有一个专属依赖收集器dep,我们理解为观察目标

        收集依赖也就是手机watcher,通过watcher来通知依赖进行更新,这里的watcher就是观察者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值