首先上代码
var data ={
msg:'hello world'
} //定义一条数据
new Bue({
data : data //vm层 data是不能变得,让data等于data 确定数据
})
function Bue(options){ ///?????????????
var data = options.data ///?????????????
var _data = {}
Object.defineProperty(_data,'msg',{
get:function(){ //当数据被使用的时候 触发,数据返回什么就显示什么
return data.msg
},
set:function(newvel){ //当数据更改的时候被触发,将数据呈现在视图里
document.getElementById('a').innerHTML = newvel
}
})
document.getElementById('a').innerHTML = _data.msg
inp.oninput = function(){ //给input绑定一个如果更改文本框中的内容就触发就事件
console.log(this)
_data.msg = this.value //这里的this指的就是input 让input的值等于_data中的数据,然后将数据呈现在页面上。
}
}
这是解释vue响应式原理的原生代码,在此我有几个问题,希望大家可以帮忙解决?
1.这为什么要传一个参数options呢?
2. var data = options.data 的作用是什么?为什么不直接data = data 呢?
浮云间
相关分类