2.7.10
codesandbox.io
控制台应该显示 "on click" 两次。
在控制台只显示了一次 "on click"。
vq8itlhq1#
如果异步加载页面(https://codesandbox.io/s/angry-sun-y90on7?file=/src/main.js),则处理程序永远不会被调用。
weylhg0b2#
你可以使用span作为router-link的插槽,并将其绑定到点击处理程序。
span
router-link
yvgpqqbh3#
你只能用RouterLink重现这个现象,而不能用其他组件吗?
RouterLink
wpcxdonn4#
Only RouterLink
vulvrdjw5#
值得注意的是,我在Nuxt issue中整理了一个复现版本,nuxt/nuxt#10593(评论)。我还查看了这些更改,并确认在Vue 2.6.14和两个Vue Router版本(3.5.1和3.6.5)上都能按预期工作,然后在Vue 2.7.14和两个版本上出现问题,所以我认为这与Vue Router的更改无关。话虽如此,关于正确使用router-link的方法有文档可以参考,确实解决了这个问题,参见https://v3.router.vuejs.org/api/#v-slot-api-3-1-0。以你的例子为例,@youngpirate32,这里有一个使用插槽方法的工作版本,https://codesandbox.io/s/nuxt-2-vue-2-7-click-event-bug-hzr4u4?file=/src/views/AboutView.vue。这也修复了异步版本,https://codesandbox.io/s/nuxt-2-vue-2-7-click-event-bug-async-mqb3o3?file=/src/views/HomeView.vue。@yyx990803虽然这确实解决了问题,但我仍然好奇为什么原生支持点击事件的操作顺序之前是@click,现在不再支持。如果这只是优化的一个例子,我也不会感到惊讶。总之,这里有一种有效的、有文档记录的方法可以解决这个问题,所以这可能根本不是一个bug。希望这对你有所帮助!
3.5.1
3.6.5
@click
doinxwow6#
你好。有没有可能修复这个问题?实际上这是一个巨大的回归,而且建议的解决方法并不总是适用。谢谢。
6条答案
按热度按时间vq8itlhq1#
如果异步加载页面(https://codesandbox.io/s/angry-sun-y90on7?file=/src/main.js),则处理程序永远不会被调用。
weylhg0b2#
你可以使用
span
作为router-link
的插槽,并将其绑定到点击处理程序。yvgpqqbh3#
你只能用
RouterLink
重现这个现象,而不能用其他组件吗?wpcxdonn4#
Only
RouterLink
vulvrdjw5#
值得注意的是,我在Nuxt issue中整理了一个复现版本,nuxt/nuxt#10593(评论)。
我还查看了这些更改,并确认在Vue 2.6.14和两个Vue Router版本(
3.5.1
和3.6.5
)上都能按预期工作,然后在Vue 2.7.14和两个版本上出现问题,所以我认为这与Vue Router的更改无关。话虽如此,关于正确使用
router-link
的方法有文档可以参考,确实解决了这个问题,参见https://v3.router.vuejs.org/api/#v-slot-api-3-1-0。以你的例子为例,@youngpirate32,这里有一个使用插槽方法的工作版本,https://codesandbox.io/s/nuxt-2-vue-2-7-click-event-bug-hzr4u4?file=/src/views/AboutView.vue。这也修复了异步版本,https://codesandbox.io/s/nuxt-2-vue-2-7-click-event-bug-async-mqb3o3?file=/src/views/HomeView.vue。
@yyx990803虽然这确实解决了问题,但我仍然好奇为什么原生支持点击事件的操作顺序之前是
@click
,现在不再支持。如果这只是优化的一个例子,我也不会感到惊讶。总之,这里有一种有效的、有文档记录的方法可以解决这个问题,所以这可能根本不是一个bug。希望这对你有所帮助!
doinxwow6#
你好。有没有可能修复这个问题?实际上这是一个巨大的回归,而且建议的解决方法并不总是适用。谢谢。