vue学习---响应

1、增加属性
assign:
this. s e t : v u e . set: vue. set:vue.set:
vm.$set:
2、mutationObserver:
当我们想想监听某个DOM发生了更改,可以使用MutationObserver,该API被所有现代浏览器支持。

方法:

disconnect()
  阻止 MutationObserver 实例继续接收的通知,直到再次调用其observe()方法,该观察者对象包含的回调函数都不会再被调用。

observe()
  配置MutationObserver在DOM更改匹配给定选项时,通过其回调函数开始接收通知。

takeRecords()
  从MutationObserver的通知队列中删除所有待处理的通知,并将它们返回到MutationRecord对象的新Array中。

使用 MutationObserver:
通过往构造函数 MutationObserver 中传入一个函数作为参数来初始化一个 MutationObserver 实例,该函数会在每次发生 DOM 发生变化的时候调用。MutationObserver 的函数的第一个参数即为单个批处理中的 DOM 变化集。每个变化包含了变化的类型和所发生的更改。

var mutationObserver = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    console.log(mutation);
  });
});

实例:

// Firefox和Chrome早期版本中带有前缀
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver
// 选择目标节点
var target = document.querySelector('#some-id'); 
// 创建观察者对象
var observer = new MutationObserver(function(mutations) {  
  mutations.forEach(function(mutation) { 
    console.log(mutation.type); 
  }); 
}); 
// 配置观察选项:
var config = { attributes: true, childList: true, characterData: true } 
// 传入目标节点和观察选项
observer.observe(target, config); 
// 随后,你还可以停止观察
observer.disconnect();

3、Vue异步更新队列
Vue的数据更新不是即时的,而是存在一个异步更新的队列,这个队列缓存所有在当前方法域内的数据变化,当相同watcher被监测到触发多次时,只会将最后一次变化存入队列中。
Vue提供等待数据变化的方法Vue.nextTick(callback),当数据发生变化后,回调方法将被执行

参考:https://cn.vuejs.org/v2/guide/reactivity.html#search-query-nav

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值