vue中关于computed的this指向问题

 更新时间:2023年07月03日 15:37:23   作者:一只叮code的小蚊子  
这篇文章主要介绍了vue中关于computed的this指向问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

关于computed的this指向

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

箭头函数中的this

  • 箭头函数内部的this是词法作用域,由上下文确定
  • 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象

vue中的computed

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

  • 不使用箭头函数
allFigure: function() {
   console.log(this)
},

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

自己的理解

  • 在computed中使用箭头函数的话,会导致this指向的不是整个的vueComponent
  • 此时使用allFigure: function() {}的形式就可以解决,this指向了vueComponent
  • 或者使用对象的形式,用set()、get()方法也不会出现问题

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.

总结

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

相关文章

  • vue3中使用sse最佳实践,封装工具详解

    vue3中使用sse最佳实践,封装工具详解

    这篇文章主要介绍了vue3中使用sse最佳实践,封装工具,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Vue实现阻止浏览器记住密码功能的三种方法

    Vue实现阻止浏览器记住密码功能的三种方法

    本文主要介绍了Vue实现阻止浏览器记住密码功能的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 基于vue 实现表单中password输入的显示与隐藏功能

    基于vue 实现表单中password输入的显示与隐藏功能

    这篇文章主要介绍了vue 实现表单中password输入的显示与隐藏功能 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • Vue.js第四天学习笔记

    Vue.js第四天学习笔记

    这篇文章主要为大家详细介绍了Vue.js第四天的学习笔记,json数组数据以csv格式导出,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 解决betterScroll在vue中存在图片时,出现拉不动的问题

    解决betterScroll在vue中存在图片时,出现拉不动的问题

    今天小编就为大家分享一篇解决betterScroll在vue中存在图片时,出现拉不动的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue报错Error:Cannot find module 'fs/promises'的解决方式

    vue报错Error:Cannot find module 'fs/promises'的解决方

    最近的项目需要用到vue/cli,但是用cnpm安装vue/cli的时候报错了,下面这篇文章主要给大家介绍了关于vue报错Error:Cannot find module 'fs/promises'的解决方式,需要的朋友可以参考下
    2022-11-11
  • vue el-table中使用el-select选中后无效的解决

    vue el-table中使用el-select选中后无效的解决

    这篇文章主要介绍了vue el-table中使用el-select选中后无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 查找Vue中下标的操作(some和findindex)

    查找Vue中下标的操作(some和findindex)

    这篇文章主要介绍了查找Vue中下标的操作(some和findindex),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue中在vuex的actions中请求数据实例

    vue中在vuex的actions中请求数据实例

    今天小编就为大家分享一篇vue中在vuex的actions中请求数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue如何自定义地址设置@

    vue如何自定义地址设置@

    这篇文章主要介绍了vue如何自定义地址设置@,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论