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]
}