
在 Nuxt 应用中, 本质是语义化 标签,因此禁止在其内部嵌套其他可点击链接(如 );否则会触发默认跳转行为,干扰模态框等局部交互。正确做法是用 替代内层 ,并配合 .prevent 事件修饰符阻止事件冒泡至外层 nuxt-link。
在 Nuxt 应用中,`
✅ openModal() 被执行(模态框打开)
❌ 同时触发外层
➡️ 返回后因路由状态已变更,模态框常被误认为“延迟显示”,实为跳转副作用。
✅ 正确实现方式
将内层 替换为语义中立的 ? 补充说明:.prevent 会调用 event.preventDefault(),消除 通过语义合规的 DOM 结构 + 精准的事件控制,即可彻底解耦全局导航与局部交互,确保模态框按预期响应,且页面具备良好可访问性与维护性。<nuxt-link class="content-container-cta" :to="'/new-page/'" :title="'View the full details'"><!-- 其他内容 --><div v-if="showModal">
class="modal-link"
>
Open Modal
</div>
<!-- 其他内容 -->
</nuxt-link>
⚠️ 注意事项与最佳实践
<div class="content-container-cta">
<!-- 内容 -->
<button v-if="showModal" class="modal-link">
Open Modal
</button>
</div>
methods: {
navigateToPage() {
this.$router.push('/new-page/')
}
}










