vue data 内怎么获得 vue 实例

我使用了一个组件,可以在data内配置该组件的回调函数,可是回调函数内的 this 指向是该组件自身的实例,请问怎么获得所在vue的实例?

阅读 14.6k
14 个回答
data () {
var me = this
return {
a: me.v
}
}

这样写试试看看

整得挺绕的,贴个代码出来看看

使用箭头函数写回掉,或者在外部定义一个变量赋值为vue实例,使用该变量进行操作

表述不太清楚呀,data中的this或者说组件中的this,基本都是指向的当前组件的实例,你这个所在vue的实例是指哪一个vue呢,是当前实例吗?还是说是父、子、兄弟组件的实例?,在子组件中你拿不到父组件实例的,除非父组件传给你了

试试已data的参数从外部传入

data是初始化的数据啊,配置调用参数不是应该用prop吗,然后你可以mounted里merge呀

new Vue({
    data() {
      return {
          someData : this.xxx,
          //此处this即指向vue实例
      }  
    }
})
新手上路,请多包涵

根据data,获取另一个data,建议用computed属性。

我觉得这是不行的,原因如下:
1.会导致循环引用
2.vue在组件依赖收集的时候可能收集不了依赖。

解决办法,用computed属性,或者watch

几种办法,callbindapply,还有就是直接保存当前的this指针
前边三个函数的使用方法可以在MDN上找到

this = vue;
getinfo(vue);
调用外部函数将vue值传出去

  export default {
    data () {
      return {
        test: '1'
      };
    },
    mounted(){
      this = vue;
      getinfo(vue);
    }
  }

function getinfo(vue){
   console.log(vue.test);
}
新手上路,请多包涵

this.$parent / this.$root

看描述不太清楚啥意思,不过想更改this,最简单的办法就是把你想要绑的实例,var that = this/要绑的实例,
回调函数内的 this 指向是该组件自身的实例,在回调函数外边定义 var that = this/要绑的实例,
在回调函数里边用that

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