【问题标题】:Vue.js 3, vue-router, @click event reloads whole pageVue.js 3,vue-router,@click 事件重新加载整个页面
【发布时间】:2021-02-13 22:04:01
【问题描述】:

我是 Vue 的新手,我希望在移动导航时单击 menuItem 时运行功能 toggleMenu(打开/关闭菜单),但随后整个页面重新加载,谁来阻止这种情况? 这是我的链接:

 <router-link to="/" @click="toggleMenu">
    <div class="nav-item">Home</div>
  </router-link>

我尝试添加@click.prevent,它会阻止重新加载但不会将我发送到路径。

编辑:

因此,感谢 Boussadjra Brahim 的回答,我让它工作了,但我用 CompositionAPI 做到了,我使用了来自 vue-routeruseRouter() 钩子

模板:

 <router-link
  to="/"
  @click.prevent="toggleMenu">
  Home </router-link>

设置():

const router = useRouter();

function toggleMenu(){
   router.push('/'); 
}

【问题讨论】:

  • 请创建一个 Codesandbox 或在其他平台上复制您的错误。

标签: javascript vue.js vue-router vuejs3


【解决方案1】:

添加 prevent 修饰符,就像在 toggleMenu 中添加 this.$router.push("/"); 一样:

 <router-link to="/" @click.prevent="toggleMenu">
    <div class="nav-item">Home</div>
  </router-link>

LIVE DEMO

【讨论】:

  • 不客气,如果您有新问题,请发布另一个问题
  • @1haker 我看到你发布了一个新问题,请取消删除
猜你喜欢
  • 2018-12-11
  • 2017-06-10
  • 1970-01-01
  • 2020-05-12
  • 2019-07-10
  • 2020-11-18
  • 2021-01-04
  • 2021-03-17
  • 1970-01-01
相关资源
最近更新 更多