VScode_god
在下王高人
采纳率50%
2021-03-02 13:27

vue的$emit()方法的使用,有一个疑问

let bus = new Vue()

 

Vue.component('my-demo', {

template: `

<div class='father'>

爱你{{obj}}

<button @click='fn'>按钮</button>

</div>

`,

data() {

return {

obj: {

name: 'zs',

age: 18

}

}

},

methods:{

fn(){

bus.$emit('send',this.obj)

}

}

})

Vue.component('my-demo1', {

template: `

<div class='son'>

哟哟 {{msg}}

</div>

`,

data() {

return {

msg: 'asdf'

}

},

mounted() {

bus.$on('send', (msg) => {

console.log(msg);

this.msg = msg

})

}

})

let vm = new Vue({

el: '.app',

}

)

$emit()这个方法好像只能通过事件里面去使用,不能放到钩子函数里面使用,请问一下这是为什么

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • weixin_42000816 烈阳, 1月前

    可以放在钩子函数里面的,你可以在钩子函数的里面不用bus.$emit(),而是改用this.$emit(),因为在钩子函数里面,你的bus还没构建完成

    点赞 评论 复制链接分享