Vue computed计算属性中this指向问题的分析与解决

作者:南栀

时间:2026-10-22

浏览:657

本文探讨Vue中computed计算属性使用箭头函数时导致的this指向错误问题。通过对比普通函数与对象形式的get/set方法,说明如何正确获取vueComponent实例,确保计算属性正常工作。

文章目录

引言:Vue computed中的this指向问题

在开发Vue项目过程中,使用computed计算属性时,若采用箭头函数定义,可能会遇到this指向异常的情况。本文对此现象进行记录与分析。

箭头函数的this绑定机制

1. 箭头函数中的this特性

  • 箭头函数内部的this绑定遵循词法作用域规则,由定义时的上下文决定。
  • 函数体内的this对象指向定义该函数时所在的对象,而非调用时的对象。

Vue computed的三种定义方式

2. Vue中computed的计算方式

尝试使用箭头函数定义计算属性。


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

引言:Vue computed中的this指向问题

不使用箭头函数,即使用普通函数定义。


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

引言:Vue computed中的this指向问题

采用对象形式,显式定义get()方法。


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

引言:Vue computed中的this指向问题

解决方案与总结

3. 个人理解与总结

  • 在computed中使用箭头函数,会导致this不指向vueComponent实例。
  • 此时改用匿名函数(普通函数)形式,this即可正确指向vueComponent。
  • 或者使用对象形式,通过定义set()和get()方法,也能避免此类问题。

以上内容为本文主要观点,希望对读者学习Vue有所帮助,欢迎支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章