<!-- 引入Vue-Router -->
<script src="https://unpkg.com/vue-router@next"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
<!-- 引入vue3 -->
<script src="https://unpkg.com/vue@next"></script>
<!-- 引入vue-router -->
<script src="https://unpkg.com/vue-router@next"></script>
</head>
<body>
<div id="app">
<p>{{value}}</p>
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
<router-view />
</div>
<script>
const RouterTest = {
data() {
return {
value: '这是一个路由演示'
}
},
}
const routes = [
{
path: '/',
component: { template: '<p>Home page</p>' }
},
{
path: "/foo",
component: { template: '<p>Foo</p>' }
},
{
path: "/bar",
component: { template: '<p>Bar</p>' }
}
];
const history = VueRouter.createWebHistory();
const router = VueRouter.createRouter({ history, routes });
Vue.createApp(RouterTest).use(router).mount('#app')
</script>
</body>
</html>
to 属性指定链接的 URL ,
<router-link>
标签默认会被渲染成一个<a>
标签 可以使用 v-slot API 完全定制<router-link>
【这里需要补充一下示例代码】
<router-view>
指定的<router-view></router-view>
(已集成到第二步)
(已集成到第二步)
(已集成到第二步)
(已集成到第二步)
此演示基于 vue-cli 生成的 vue 项目脚手架,创建时就导入了 vue-router 依赖(推荐)!
此步骤如果在使用 vue-cli 生成的 vue 项目脚手架时导入了 vue-router 依赖,便可省略!
npm install vue-router@next --save
<router-view />
<template>
<router-view />
</template>
<style lang="scss">
</style>
<template>
<router-link to="/">主页</router-link>
<router-link to="/news">新闻</router-link>
<router-link to="/books">图书</router-link>
<router-link to="/videos">视频</router-link>
<div>=================</div>
<router-view />
</template>
<script>
export default {
el: 'Study'
}
</script>
<style>
</style>
下面是基本内容示例
<template>
<div>主页面</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
关于路由嵌套的说明: 1、下面有以及路由导航和二级路由导航; 2、一级路由导航作用在 App.vue 下的
<router-view />
,二级路由导航作用在 Study.vue 下的<router-view />
; 3、所有的一级路由导航都可以显示在 App.vue 上,每一个二级路由都可以显示在其对应的以及路由页面上; 4、实际上这里仅仅用于演示路由跳转,是不需要用到路由嵌套的,但这能使运行结果更直观地展示出跳转变化!
import { createRouter, createWebHashHistory } from 'vue-router'
import Study from '../views/Study.vue'
import Home from '../views/Home.vue'
import News from '../views/News.vue'
import Books from '../views/Books.vue'
import Videos from '../views/Videos.vue'
const routes = [
{
path: '/',
component: Study,
redirect: '/home',
children: [
{
path: '/home',
component: Home
}, {
path: '/news',
component: News
}, {
path: '/books',
component: Books
}, {
path: '/videos',
component: Videos
}
]
}
]
const router = createRouter({
history: createWebHashHistory(),
routes
})
export default router
仅用作展示代码内容
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
createApp(App).use(store).use(router).mount('#app')