美文网首页
vue init state

vue init state

作者: 安石0 | 来源:发表于2018-08-14 14:00 被阅读0次
export default {
  name: 'app',
  components: {
    HelloWorld
  },
  data(){
    return {
      msg: 'zlj'
    }
  },
  methods: {
    sayMsg () {
    }
  },
  computed: {
    msg2(){
      return 'msg2 is : ' + this.msg
    }
  },
  mounted(){
    console.log(this.msg)
    console.log(this.sayMsg)
   console.log(this.msg2)
  }
}

以写在不同的vm不同的属性里面,但是均可通过this[key]访问到
比较简单,用了Object.defineProperty

var myVue={
  data:{
   name:'zlj'
  },
  methods:{
    say:function(){
       console.log('nihao')   
    }
  },
  computed:{
    getName:function(){
      return 'zlj'  
    }
  }
}
function proxy(target,sourceKey,key){
  sharedPropertyDefinition.get = function proxyGetter () {
    return this[sourceKey][key]
  }
  sharedPropertyDefinition.set = function proxySetter (val) {
    this[sourceKey][key] = val
  }
  Object.defineProperty(target, key, sharedPropertyDefinition)
}
var keys1 = Object.keys(myVue.data)
var i =keys1.length
while(i--){
  key = keys1[i]
  proxy(myVue, 'data',key)
}
var keys2 = Object.keys(myVue.methods)
var i =keys2.length
while(i--){
  key = keys2[i]
  proxy(myVue, 'methods',key)
}
var keys3 = Object.keys(myVue.computed)
var i =keys3.length
while(i--){
  key = keys3[i]
  proxy(myVue, 'computed',key)
}
const sharedPropertyDefinition = {
  enumerable: true,
  configurable: true
}

相关文章

网友评论

      本文标题:vue init state

      本文链接:https://www.haomeiwen.com/subject/vbxvbftx.html