vue3+router的使用
自己创建了两个vue文件,用来演示路由的使用
代码如下
(1)class.vue
<template>
<div>
当前为class
</div>
</template>
<script>
export default {
name:'ClassView'
}
</script>
<style lang="scss" scoped>
</style>
(2)index.vue
<template>
<div>
当前为首页
</div>
</template>
<script>
export default {
name:' IndexHome',
}
</script>
<style lang="scss" scoped>
</style>
项目文件的结构
src/
├── main.js
├── router/
│ └── index.js
├── views/
│ ├── Index.vue
│ └── Class.vue
├── App.vue
1.安装的 vue-router
npm install vue-router@4
2.创建router文件夹
①创建一个index.js文件
import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/index.vue'; // 首页组件
import Class from '../views/class.vue'; // 课堂组件
// 定义路由规则
const routes = [
{
path: '/',
name: 'Home',
component: Home,
},
{
path: '/class',
name: 'Class',
component: Class,
},
];
// 创建路由实例
const router = createRouter({
history: createWebHistory(process.env.BASE_URL), // 使用 history 模式
routes,
});
export default router;
②解释
{
path: ‘/class’,
name: ‘Class’,
component: Class,
},
1.path: ‘/class’,
代表打开页面的路径,访问/class路径时会打开Class组件,由代码import Class from ‘…/views/class.vue’; 可知:即打开class.vue页面。
/代表初始默认页面,如下图
- component: Class,
component为组件,对应import Class from ‘…/views/class.vue’;这个代码,可以Class来代替class.vue页面。
- name: ‘Class’,
给这个组件取一个名字,可以路由跳转时用到,具体看后面内容。
3.修改主入口文件:main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from './router'; // 引入路由实例
// 创建应用实例并挂载路由
createApp(App)
.use(router) // 使用路由
.mount('#app'); // 挂载到 DOM
4.App.vue文件
①代码
<template>
<div class="app">
<div class="top">
<router-link class="nav1" to="/">首页</router-link>
<router-link class="nav1" to="/class">课堂</router-link>
</div>
<div class="center">
<div class="main">
<router-view></router-view>
</div>
</div>
</div>
</template>
<style>
.app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
}
.top {
text-align: center;
height: 8%;
background-color: aliceblue;
}
.center {
display: flex;
height: 100%;
width: 100%;
justify-content: center; /* 水平居中 */
}
</style>
②部分讲解
<router-link class="nav1" to="/">首页</router-link>
<router-link class="nav1" to="/class">课堂</router-link>
<router-link>
router-link
是 Vue Router 提供的组件,类似于 HTML 中的<a>
标签,用于在 Vue 应用中导航。- 它的主要功能是生成一个可点击的链接,同时更新 URL 地址,而无需重新加载页面。
to
属性
- 指定导航目标的路径:
/
对应路由配置中的根路径(Home
页面)。/class
对应路由配置中的class
页面。
class="nav1"
- 为该链接添加了 CSS 类名
nav1
,可以用于样式设置,例如控制字体大小、颜色、边距等。
③补充
用name来进行路由跳转
<router-link :to="{ name: 'Home' }">首页</router-link>
<router-link :to="{ name: 'Class' }">课堂</router-link>
该代码和上面代码等价,这里也解释了name的作用。