为了账号安全,请及时绑定邮箱和手机立即绑定

Vue中的响应式原理,有两个问题请大家回答一下?

Vue中的响应式原理,有两个问题请大家回答一下?

ibeautiful 2019-02-28 18:15:29
首先上代码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 呢?
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

因为这是一个对象,data只是这个对象里的一个属性,option还有其他的属性,比如el,methods, props
还有,在源码中,外部数据的data的定义和vue对象是不同文件,你怎么用data = data

查看完整回答
反对 回复 2019-03-02
  • 1 回答
  • 0 关注
  • 463 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信