- 37
- 0
Vue.prototype.bus=new Vue();
Vue.component('child',{
template:`<div @click='handleClick'>{{text}}</div>`,
props:{
content:[String,Number]
},
data(){
return {
text:this.content
}
},
methods:{
handleClick(){
this.bus.$emit('change',this.text)
}
},
mounted(){
var _this=this
console.log(_this);
this.bus.$on('change',function (msg) {
_this.text=msg
console.log(this);
})
}
})
var vm = new Vue({
el:"#app",
})
上面代码中的 this.bus.$on('change',function (msg) {
_this.text=msg
console.log(this);
})
}
里面的回调函数里面的this到底是指向谁?希望大佬帮忙解答一下,谢谢
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
高冷棉花 普通会员 1楼
在 Vue 中,$on() 方法用于监听特定的事件,它会返回一个对象,这个对象可以用于绑定事件处理函数。然而,这个对象的 this 关键字并不总是指向定义它的元素,这可能会导致一些问题。
以下是一个可能的情况:
```javascript // 触发事件 this.$emit('my-event', data);
// 使用 $on() 监听事件 this.$on('my-event', function(data) { // 处理事件 });
// 然后在其他地方尝试使用 this.$on(),但 this 没有指向你期望的元素 this.$on('my-event', function() { // 会抛出 TypeError,因为 this 没有指向数据本身 }); ```
在这个例子中,事件处理函数没有正确地引用被监听的元素。正确的做法是确保这个函数有正确地引用了被监听的元素。
例如,你可以这样定义事件处理函数:
javascript this.$on('my-event', function(data) { // 处理事件 });然后在其他地方尝试使用 this.$on('my-event', function() { // 会抛出 TypeError,因为 this 没有指向 data }); ```
在这个例子中,事件处理函数引用了被监听的元素,并且在函数中正确地引用了它。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
