Appearance
入门
示例
使用以下示例来引入一些核心概念:
首先来看根组件, App.vue
。
App.vue
vue
<template>
<h1>Hello App!</h1>
<p><strong>Current route path:</strong> {{ $route.fullPath }}</p>
<nav>
<RouterLink to="/">Go to Home</RouterLink>
<RouterLink to="/about">Go to About</RouterLink>
</nav>
<main>
<RouterView />
</main>
</template>
RouterView 组件可以使 Vue Router 知道你想要在哪里渲染当前 URL 路径对应的路由组件。它不一定要在 App.vue 中,你可以把它放在任何地方,但它需要在某处被导入,否则 Vue Router 就不会渲染任何东西。
上述示例还使用了 {{ $route.fullPath }}。你可以在组件模板中使用 $route
来访问当前的路由对象。
创建路由器实例
路由器实例是通过调用 createRouter()
函数创建的:
js
import { createWebHistory, createRouter } from 'vue-router'
import HomeView from './HomeView.vue'
import AboutView from './AboutView.vue'
const routes = [
{ path: '/', component: HomeView },
{ path: '/about', component: AboutView },
]
const router = createRouter({
history: createWebHistory(),
routes,
})
注册路由器插件
一旦创建了我们的路由器实例,我们就需要将其注册为插件,这一步骤可以通过调用 use()
来完成。
js
const app = createApp(App)
app.use(router)
app.mount('#app')
和大多数的 Vue 插件一样,use()
需要在 mount()
之前调用。
这个插件的职责:
- 全局注册
RouterView
和RouterLink
组件。 - 添加全局
$router
和$route
属性。 - 启用
useRouter()
和useRoute()
组合式函数。 - 触发路由器解析初始路由。
访问路由器和当前路由
如果我们使用选项式 API,我们可以在 JavaScript 中如下访问这两个属性:this.$router
和 this.$route
。
js
export default {
methods: {
goToAbout() {
this.$router.push('/about')
},
},
}
组合式 API:
vue
<script setup>
import { useRoute, useRouter } from 'vue-router';
const router = useRouter();
const route = useRoute();
console.log(route);
const toAbout = () => {
router.push('/about');
}
</script>