eastling
9/18/2018 - 7:54 AM

responsive-data

响应式数据,view通知model

var model = {
  name: "javascript"
};
// 使传入的数据变成响应式数据
observify(model);
//监听数据修改
watch(model, "name", function(newValue, oldValue){
  console.log("name newValue: ", newValue,  ", oldValue: ", oldValue);
});

model.name = "php";

数据通知view(事件机制) view通知数据(数据劫持Object.defineProperty/Proy),对象用方法重定义 不想要每次数据变都通知,有监测到的数据变化才通知(数据依赖)依赖收集,get的时候开始收集 通知变化,set根据收集数据决定是否触发 将依赖收集和触发通知分离出来,单独实现

var model = {
    click: false
};

var button = document.getElementById("button");
button.addEventListener("click", function(){
    model.click = !model.click;
})