vuejs中this代表什么含义

vuejs中this代表的含义:1、vue组件或者实例中,this代表调用它的Vue实例;2、回调函数中,this代表父级组件;3、箭头函数中,this代表定义它时所处的对象,即宿主对象。

vuejs中this代表什么含义

本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

Vuejs中的this变量

1 vue组件中

在Vue所有的生命周期钩子方法(如beforeCreate,created,beforeMount,mounted,beforeUpdate, updated,beforeDestroy以及destroyed)里使用this,this指代调用它的Vue实例,即(new Vue)

  1. new Vue({  data: {    a: 1  },  created: function () {    console.log('a is: ' + this.a)  }  methods: {plus: function () {      this.a++    }  }});

登录后复制

vue组件或者实例中,不管是生命周期钩子函数created还是自定义函数plus,他们中的this都是指当前vue实例

立即学习“前端免费学习笔记(深入)”;

2 回调函数

  1. methods: {     searchLocations: function() {         var address = this.search         var geocoder = new window.google.maps.Geocoder()         geocoder.geocode({             address: address         }, function(results, status) {             if (status === window.google.maps.GeocoderStatus.OK) {                 this.buscarLojas(results[0].geometry.location)             }         })     },     buscarLojas: function(center) {         console.log(center)     } }

登录后复制

此时回调函数function(results, status)会重新将this指向匿名对象(类比java匿名类),所以其中的this指代父级组件,执行this.buscarLojas会报错找不到函数

3 箭头函数

箭头函数没有自己的this,它的this是继承而来;默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象

  1. methods: {    searchLocations: function () {      var address = this.search      var geocoder = new window.google.maps.Geocoder()      geocoder.geocode({address: address}, (results, status) => {        if (status === window.google.maps.GeocoderStatus.OK) {          this.buscarLojas(results[0].geometry.location)        } else {          alert(address + ' not found')        }      })    },    buscarLojas: function (center) {      console.log(center)    },   group1:()=>{ //ES6的箭头函数写法,箭头函数没有自己的this,它的this事继承来的,指向在定义它时所处的宿主对象,在这里this指向window。         this.......   },}

登录后复制

箭头函数被绑定到父级上下文,因此其中的this会指向父级组件,针对情况三中的问题,将回调函数中的function改成箭头函数,会将this从匿名对象重新指向外部的vue组件

相关推荐:《vue.js教程》

以上就是vuejs中this代表什么含义的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    vuejs怎么防止重复请求

    2025-4-5 18:44:39

    编程技术

    vue组件是什么

    2025-4-5 18:45:26

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索