javascript - Vue router-link 和自定义事件

标签 javascript vue.js vuejs2 vue-router

我正在尝试在 vue 中的路由器链接上创建自定义事件,但它似乎不起作用。我想做这样的事情-

父级-

<Home @customEvent="myEventHandler" />

脚本-

export default {
methods: {
    myEventHandler() {
        console.log('yay')
    }
}

child

export default {
...
mounted() {
    axios.get('api/link').then(res => {
        this.posts = res.data;
        this.$emit('customEvent')
    }
}

这可以很好地使用常规组件创建 yay 日志,但是当我尝试做这样的事情时 -

<router-link to='/home' @customEvent="myEventHandler">Home</router-link>

这似乎不起作用。如何监听来自使用 router-link 创建的组件的自定义事件?

提前致谢...

最佳答案

这是可能的。您只能从子级到父级$emit事件,不能在2个不同路由器之间$emit事件

Emit event from children to parent

enter image description here

Can't emit event between 2 different routes:

enter image description here

要解决此问题,您可以为组件 A 和组件 B 创建一个包装组件,然后使用 router-view 接收事件

关于javascript - Vue router-link 和自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199261/

相关文章:

vue.js - 我应该如何处理 Vuex 中的事件?

validation - 如何在 Vue 中将 min/max 属性应用于 v-model?

vuejs2 - Vue - 从 axios 响应传递来自子组件的数据

javascript - 如何在 Controller 中使用 multer 功能而不是在 route 使用

javascript - 复选框没有像我期望的那样被改变

javascript - 超链接未在 Vue.js 模板中打印,但仅字符串即可正常工作

javascript - 如何防止 Vue Js 组件中事件监听器的多次调用?

vue.js - Nuxt 3 - 如何从组件访问插件注入(inject)?

javascript - Bootstrap 冲突或错误 - 仍在寻找解决方案

Javascript 正则表达式拆分