跳到主要内容

Vue路由的使用以及如何解决在router-link上添加点击事件无效的情况 ?

参考答案:

Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用。它允许你通过简单的 API 实现路由功能,包括动态路由、嵌套路由等。

首先,你需要安装并引入 Vue Router:

npm install vue-router

然后在你的 Vue 应用中引入并使用它:

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = [
  { path: '/foo', component: Foo },
  { path: '/bar', component: Bar }
]

const router = new VueRouter({
  routes // (缩写) 相当于 routes: routes
})

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

在你的组件中,你可以使用 <router-link> 组件来创建导航链接:

<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>

至于在 <router-link> 上添加点击事件,由于 <router-link> 本身就是为了实现路由跳转而设计的,所以在其上添加点击事件可能会导致事件冲突。但你可以使用 @click.native 修饰符来在 <router-link> 上添加原生点击事件:

<router-link to="/foo" @click.native="handleClick">Go to Foo</router-link>

然后在你的 methods 中定义 handleClick 方法:

methods: {
  handleClick() {
    console.log('You clicked the link!')
  }
}

这样,当你点击链接时,handleClick 方法将会被调用,同时路由也会跳转到 /foo

但请注意,由于 <router-link> 的主要功能是导航,因此在其上添加点击事件可能会导致用户体验问题。如果你需要在路由跳转前执行某些操作(例如确认用户是否想要离开当前页面),你应该在路由守卫(route guards)中进行,而不是在 <router-link> 的点击事件中。