安装
yarn add vue-router
使用
HTML:
// App.vue
<script src="https://unpkg.com/vue@3"></script>
<script src="https://unpkg.com/vue-router@4"></script>
<div id="app">
<h1>Hello App!</h1>
<p>
<!--使用 router-link 组件进行导航 -->
<!--通过传递 `to` 来指定链接 -->
<!--`<router-link>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签-->
<router-link to="/">Go to Home</router-link>
<router-link to="/about">Go to About</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
</div>
自定义路由组件:
// /components/UserPost.vue
<template>
<div>User {
{
this.$route.params}} with post {
{
this.$route.postId}}</div>
</template>
JavaScript:
// main.js
// 从vue-router引入createRouter和createWebHashHistory. 如果不引入的话,
// 使用VueRouter.createRouter()来使用
import {
createRouter, createWebHashHistory} from 'vue-router'
// 1. 定义路由组件.
// 也可以从其他文件导入
// (1)直接定义路由组件
const Home = {
template: '<div>Home</div>' }
const About = {
template: '<div>About</div>' }
// (2)从其他组件导入
import UserPost from "./components/UserPost" //(/components/下有一个名为UserPost.vue文件)
// 2. 定义一些路由
// 每个路由都需要映射到一个组件。
// 我们后面再讨论嵌套路由。
const routes = [
{
path: '/', component: Home },
{
path: '/about', component: About },
{
path: '/users/:username/posts/:postId', component: UserPost } // 此路由匹配 http://example.com/users/Jack/posts/123
]
// 3. 创建路由实例并传递 `routes` 配置
// 你可以在这里输入更多的配置,但我们在这里
// 暂时保持简单
const router = createRouter({
// 4. 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。
history: createWebHashHistory(),
routes, // `routes: routes`的缩写
})
// 5. 创建并挂载根实例
const app = Vue.createApp({
})
//确保 _use_ 路由实例使
//整个应用支持路由。
app.use(router) // 此时,可以在任意组件中使用this.$router访问路由对象,并以this.$route的形式访问当前路由
app.mount('#app