一. 前言(路由框架以及介绍)
1. router 路由 介绍
应为vue是单页应用不会有那么多html 让我们跳转 所有要使用路由做页面的跳转
Vue 路由允许我们通过不同的 URL 访问不同的内容。通过 Vue 可以实现多视图的单页Web应用
2. 安装
构建前端项目
npm init vue@latest
//或者
npm init vite@latest
npm install vue-router@4
使用Vue3 安装对应的router4版本
使用Vue2安装对应的router3版本
3. 架构
在src目录下面新建router 文件 然后在router 文件夹下面新建 index.ts
//引入路由对象
import {
createRouter, createWebHistory, createWebHashHistory, createMemoryHistory, RouteRecordRaw } from 'vue-router'
//vue2 mode history vue3 createWebHistory
//vue2 mode hash vue3 createWebHashHistory 一般用 hash
//vue2 mode abstact vue3 createMemoryHistory 对应 v2的三种路由模式 这个 ssr服务端渲染使用的
//路由数组的类型 RouteRecordRaw
// 定义一些路由
// 每个路由都需要映射到一个组件。
const routes: Array<RouteRecordRaw> = [{
path: '/',
component: () => import('../components/a.vue')
},{
path: '/register',
component: () => import('../components/b.vue')
}]
const router = createRouter({
history: createWebHistory(),
routes
})
//导出router
export default router
4. 使用
1. router-link#
请注意,我们没有使用常规的 a 标签,而是使用一个自定义组件 router-link 来创建链接。这使得 Vue Router 可以在不重新加载页面的情况下更改 URL,处理 URL 的生成以及编码。我们将在后面看到如何从这些功能中获益。
2. router-view#
router-view 将显示与 url 对应的组件。你可以把它放在任何地方,以适应你的布局。
<template>
<div>
<h1>小满最骚</h1>
<div>
<!--使用 router-link 组件进行导航 -->
<!--通过传递 `to` 来指定链接 -->
<!--`<router-link>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签-->
<router-link tag="div" to="/">跳转a</router-link>
<router-link tag="div" style="margin-left:200px" to="/register">跳转b</router-link>
</div>
<hr />
<!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
</div>
</template>
5. 最后在main.ts 挂载
import {
createApp } from 'vue'
import App from './App.vue'
import router from './router'
createApp(App).use(router).mount('#app')
二. 命名路由-编程式导航
1. 命名路由
除了 path 之外,你还可以为任何路由提供 name。这有以下优点:
- 没有硬编码的 URL
- params 的自动编码/解码。
- 防止你在 url 中出现打字错误。
- 绕过路径排序(如显示一个)
const routes:Array<RouteRecordRaw> = [
{
path:"/",
name:"Login", // 就是添加了一个 name 属性
component:()=> import('../components/login.vue')
},
{
path:"/reg",
name:"Reg", // 就是添加了一个 name 属性
component:()=> import('../components/reg.vue'