vue-router 是 vue.js 官方给出的路由解决方案,能够轻松的管理 SPA 项目中组件的切换;yarn add vue-router@4;src 文件夹中创建一个 router 文件夹,在其中创建 index.js 模块;createRouter() 创建路由,并暴露出去;main.js 文件中初始化路由模块 app.use(router)router/index.js:import { createRouter } from 'vue-router'
// TODO 创建路由
const router = createRouter({
// 相关配置
})
export default router
main.js:import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 引入路由模块
let app = createApp(App)
app.use(router) // 初始化路由插件
app.mount('#app')
hsitory路由模式可采用:createWebHashHistory():hash模式:
URL之前使用了一个哈希字符#;URL从未被发送到服务器,所以它不需要在服务器层面上进行任何特殊处理;createWebHistory(): history模式,推荐使用;
URL会看起来很正常(URL中不带#号);URL,就会得到一个404错误,要解决这个问题,你需要做的就是在你的服务器上添加一个简单的回退路由,如果URL不匹配任何静态资源,它应提供与你的应用程序中的index.html相同的页面;history路由模式:import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
// TODO 创建路由
const router = createRouter({
// TODO 规定路由模式
history: createWebHistory(),
})
export default router
hash路由模式:import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
// TODO 创建路由
const router = createRouter({
// TODO 规定路由模式
history: createWebHashHistory(),
})
export default router
routes配置路由规则:
path:路由匹配的URL;name:当路由指向此页面时显示的名字;component:路由调用这个页面时加载的组件;HomeVue.vue:<script setup>
import { ref, reactive, computed, onMounted } from 'vue'
onMounted(() => {});
script>
<template>
<div class="home">
网站首页界面
div>
template>
<style scoped>
.home {
color: #fff;
font-size: 24px;
background-color: #ff0040;
}
style>
BlogHomeVue.vue:<script setup>
import { ref, reactive, computed, onMounted } from 'vue'
onMounted(() => {});
script>
<template>
<div class="blog-home">
博客首页界面
div>
template>
<style scoped>
.blog-home {
color: #fff;
font-size: 24px;
background-color: chartreuse;
}
style>
import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
// TODO 创建路由规则数组
const routes = [
{
path: '/home',
name: 'home',
component: () => import('@/views/HomeVue.vue')
},
{
path: '/blog',
name: 'blog',
component: () => import('@/views/BlogHomeVue.vue')
}
]
// TODO 创建路由
const router = createRouter({
// TODO 规定路由模式
history: createWebHistory(),
routes
})
export default router
:路由链接,to 属性则为点击此元素,需要切换的路由地址;
active-class 进行指定;<router-link to="路径" active-class="类名" > xxx router-link>
:路由占位符(Vue2中的路由出口),路由切换的视图展示的位置;App.vue:(此处有可能URL地址中仍然带有#号,需要重启项目)<script setup>
import { ref, reactive, computed, onMounted } from 'vue'
onMounted(() => {});
script>
<template>
<router-link to="/home">首页router-link> |
<router-link to="/blog">博客router-link>
<hr>
<router-view />
template>
