MVVM

MVVM由三部分组成

  • View:界面
  • Model:数据模型
  • ViewModel:作为桥梁负责沟通 View 和 Model

在MVVM中,UI通过数据驱动,数据改变就会刷新相应的UI,UI改变也会改变相应的数据
ViewModel只关心数据和业务的处理,View和Model相互独立,ViewModel可放置一些可复用的逻辑

  • 脏数据检测
    当触发指定事件之后,进入到脏数据检测,调用$digest循环遍历所有的数据观察者,判断当前值是否和先前的值有区别,若有变化则调用$watch函数,然后再次调用 $digest循环遍历直至没有发现变化。
    特点:可以批量检测出更新的值,再统一更新UI,减少DOM操作次数

  • 数据劫持
    Vue内部使用Object.defineProperty()实现双向绑定,监听setget事件

  • Proxy 与 Object.defineProperty 对比
    Object.defineProperty
    (1)只能对属性进行数据劫持,需要深度遍历整个对象
    (2) 数组不能监听数据的变化
    Proxy原生支持监听数组变化,并且可以对整个对象进行拦截

  • 路由原理
    监听url的变化,然后匹配路由规则,显示相应的页面,并且无须刷新
    hash模式
    www.test.com/##/就是hash url,当##后面的哈希值发生变化时,不会向服务器请求数据,可以通过hashchange事件监听url变化,从而进行跳转页面。
    在这里插入图片描述

history模式
html5新推出的功能
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值