vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue computed的this指向

vue中关于computed的this指向问题

作者:一只叮code的小蚊子

这篇文章主要介绍了vue中关于computed的this指向问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

关于computed的this指向

在写vue项目时,用到了computed计算属性,遇到了使用箭头函数出现this指向问题,这里记录下

箭头函数中的this

vue中的computed

list: () => {
   console.log(this)
}

allFigure: function() {
   console.log(this)
},

allFigure: {
  get() {
    console.log(this);
  }
}

自己的理解

vue实例内部方法的this指向问题

如果是vue实例本身的属性和方法,那么this指向就是vue实例本身,比如methods对象,computed对象,watch对象里的方法,要用方法名(){}写,就代表this指向是vue实例,如果使用()=>{}箭头函数的方式定义方法,则this指向window,因为箭头函数中的this指向的是外部函数的this指向,普通函数的this指向的是它的调用者,而vue中的methods和computed和watch和各种回调钩子,因为他们是vue本身的方法所以只要他们使用普通函数定义this当然指向他们的调用者即this

除了这些一级方法,二级方法啥的最好都用箭头函数,因为箭头函数this指向外部函数的this,这些二级函数外部正好是一级函数,一级函数的this正好的vue,所以正好nice.

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文