vue中如何获取data中的属性值

  export default{
        data(){
            return {
                msg: '数据'
            }
        },
        components: {
        }
    }

比如说我需要在method里面修改msg 。正常情况下this.msg =‘’就可以操作了。但是需要在一个函数中赋值,此时的this就是函数的this而不能正常修改msg 这种情况应该怎么办?

在export default中如何获取data返回的属性值?不用this表示的话

阅读 24.2k
4 个回答

不知道你指的“函数中“、”在export default中“是什么意思,

在函数中拿到这个组件实例的 vm 对象,修改 vm.msg 。如果是在此组件内的method中,vue 会帮你自动bind this的,this永远指向 vm 对象。

不知道题主是不是这个意思,可以手动绑定函数的this,或者也可以把this作为参数传进去处理。

function privateFoo(data) {
  this.msg = data
}

export default {
  data() {
    return {
      msg: '数据'
    }
  },
  components: {
  },
  methods: {
    foo() {
      // this.msg = 'new data'
      privateFoo.call(this, 'new data')
    }
  }
}

export default中这个没理解到是什么意思。

this的指向问题,在执行函数外面定义变量,改变this的指向,或者bind(this)改变指向等都可以改变this的指向。

1 再能拿到this的作用域下把this存入变量
2 箭头函数
3 bind/call/apply来绑定this

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题