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.

总结

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

相关文章

  • vue实现给当前元素添加样式,其他元素无样式问题

    vue实现给当前元素添加样式,其他元素无样式问题

    这篇文章主要介绍了vue实现给当前元素添加样式,其他元素无样式问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • element-plus中el-upload组件限制上传文件类型的方法

    element-plus中el-upload组件限制上传文件类型的方法

     Element Plus 中,el-upload 组件可以通过设置 accept 属性来限制上传文件的格式,这篇文章主要介绍了element-plus中el-upload组件限制上传文件类型,需要的朋友可以参考下
    2024-02-02
  • vue运行项目时network显示unavailable的问题及解决

    vue运行项目时network显示unavailable的问题及解决

    这篇文章主要介绍了vue运行项目时network显示unavailable的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue实现百分比占比条效果

    vue实现百分比占比条效果

    这篇文章主要为大家详细介绍了vue实现百分比占比条效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • vue slot与传参实例代码讲解

    vue slot与传参实例代码讲解

    这篇文章主要介绍了vue slot与传参实例代码讲解,在文章末尾给大家介绍了vue 利用slot向父组件传值的方法,需要的朋友可以参考下
    2019-04-04
  • Vue 打包体积优化方案小结

    Vue 打包体积优化方案小结

    这篇文章主要介绍了Vue 打包体积优化方案小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Vue3获取DOM节点的3种方式实例

    Vue3获取DOM节点的3种方式实例

    Vue本来无需操作DOM来更新界面,而且Vue也不推荐我们直接操作DOM,但是我们非要拿到DOM操作DOM怎么办,下面这篇文章主要给大家介绍了关于Vue3获取DOM节点的3种方式,需要的朋友可以参考下
    2023-02-02
  • vuejs router history 配置到iis的方法

    vuejs router history 配置到iis的方法

    今天小编就为大家分享一篇vuejs router history 配置到iis的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue实现单行删除与批量删除

    Vue实现单行删除与批量删除

    这篇文章主要介绍了Vue实现单行删除与批量删除,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Webpack打包图片-js-vue 案例解析

    Webpack打包图片-js-vue 案例解析

    在开发中我们会有各种各样的模块依赖,这些模块可能来自于自己编写的代码,也可能来自第三方库,本文给大家介绍Webpack打包图片-js-vue的相关知识,感兴趣的朋友跟随小编一起看看吧
    2023-11-11

最新评论