介绍

Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。功能包括:

  • 嵌套路由映射
  • 动态路由选择
  • 模块化、基于组件的路由配置
  • 路由参数、查询、通配符
  • 展示由 Vue.js 的过渡系统提供的过渡效果
  • 细致的导航控制
  • 自动激活 CSS 类的链接
  • HTML5 history 模式或 hash 模式
  • 可定制的滚动行为
  • URL 的正确编码

一、安装

直接下载 / CDN

https://unpkg.com/vue-router@4

npm安装

npm install vue-router@4

开发版本构建

如果你想使用最新的开发版本,你需要直接从 GitHub 上克隆并自己构建 vue-router。

git clone https://github.com/vuejs/vue-router.git node_modules/vue-router
cd node_modules/vue-router
npm install
npm run build

二、使用方法

新建router模块

在src目录下创建一个router目录,里面再创建一个index.js/index.ts文件,这个目录就是router模块

import { createRouter, createWebHashHistory } from "vue-router";
const routers = [{path: '/',component: () => import('../views/Index/Index.vue')},{path: '/login',component: () => import('../views/Login/Login.vue')}
]export const router = createRouter({history: createWebHashHistory(),routes: routers
})export default router

挂载路由

在main.js/main.ts文件添加router

import { createApp } from 'vue';
import App from './App.vue';
import router from './router/index'const app = createApp(App);
app.use(router);
app.mount('#app')

然后在App.vue文件中使用router-view将组件或页面渲染到这里

<template><router-view></router-view>
</template><script lang="ts">
import { Options, Vue } from 'vue-class-component';@Options({components: { },
})
export default class App extends Vue {}
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

最后在用到路由的组件通过router-view组件或者router-link跳转

<script lang="ts"></script>
<template><van-button type="primary">首页</van-button><router-link to="/login"><van-button type="success">登录</van-button></router-link>
</template>

使用@别名作为根目录

在vite.config.ts文件中引入path并配置

import { resolve } from 'path';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import styleImport, { VantResolve } from 'vite-plugin-style-import';// https://vitejs.dev/config/
const root = process.cwd()
function pathResolve(dir: string) {return resolve(root, '.', dir);
}
// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),styleImport({resolves: [VantResolve()],}),],resolve: {extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.less', '.css'],alias: [{find: /\@\//,replacement: `${pathResolve('src')}/`}]},server: {// host: '192.168.0.221',}
})

然后就可以在相应的地方使用啦,如:router配置文件中

import { createRouter, createWebHashHistory } from "vue-router";
const routers = [{path: '/',component: () => import('@/views/Index/Index.vue')},{path: '/login',component: () => import('@/views/Login/Login.vue')},{path: '/users/:id',component: () => import('@/views/Users/Users.vue')}
]export const router = createRouter({history: createWebHashHistory(),routes: routers
})export default router

动态路由匹配

const routers = [{// 动态字段以冒号开始path: '/users/:id',component: () => import('../views/Users/Users.vue')},
]
<template><h3>User ID :{{$route.params.id}}</h3>
</template><script>
export default {name: "Users"
}
</script><style scoped></style>

vue-router路由文档详解相关推荐

  1. 英集芯ip6809规格书pdf芯片文档详解及典型电路原理图

    英集芯ip6809芯片是一款无线充电发送端控制器SOC芯片,兼容WPC Qi v1.2.4新标准.支持2-3线圈无线充电发射端应用,支持A28线圈.MP-A8线圈,支持客户线圈定制方案,支持5W.苹果 ...

  2. jsoup解析和遍历一个html文档详解

    解析和遍历一个HTML文档 如何解析一个HTML文档: String html = "<html><head><title>First parse< ...

  3. 在MyEclipse中使用javadoc导出API文档详解

    本篇文档介绍如何在MyEclipse中导出javadoc(API)帮助文档,并且使用htmlhelp.exe和jd2chm.exe生成chm文档. 具体步骤如下: 打开MyEclipse,选中想要制作 ...

  4. 【PDF】java使用Itext生成pdf文档--详解

    [API接口] 一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/i ...

  5. BH1750 光照传感器文档详解 及 驱动设计

    前言 最近接触到一个应用,需要在低功耗的产品上加上光照度采集,正好最近有接触到一款光照传感器 BH1750 ,性能价格都合适,那么今天就抽空来好好测试一下. 那么要写一篇测试文章,我会尽量以新手的角度 ...

  6. Swagger文档详解

    1.Swagger介绍 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务(http s://swagger.io/). 它的主要作用是: 使得 ...

  7. webservice的WSDL文档详解

    WSDL – WebService Description Language – Web服务描述语言. –通过XML形式说明服务在什么地方-地址 –通过XML形式说明服务提供什么样的方法 – 如何调用 ...

  8. Dubbo2.7文档详解

    本篇博文参考dubbo官方文档 本编博文参考javaguide之rpc 文章目录 一.RPC 1.1 什么是 RPC? 1.2 为什么要用 RPC? 1.3 RPC 能帮助我们做什么呢? 1.4 RP ...

  9. 第5节:开发微信小程序之文档详解

    前言 前面4节,我们讲解了为什么要开这一个专栏,以及第一个小程序Hello World,与其说第一个小程序,不如说微信开发者工具为我们创建了一个基础工程项目!然后,又开发了一个真正实现突破0的小程序- ...

  10. 网络抓包工具 翻译帮助文档 详解教程

    How To Set Up a Capture 1. 确保你做的事是被允许的! (1)意思是在不违反法律的情况下抓取可以被允许抓取的包. 2.一般设置 (1)权限的设置,你是否有权限去获取用户或者管理 ...

最新文章

  1. 数据结构与算法之美-目录
  2. 使用 diff 查找文件的差异并生成补丁文件修补
  3. RAM测试方法 C语言实现,有哪些常用单片机系统RAM测试方法?基于种子和逐位倒转的RAM故障测试法有什么优点?...
  4. Java 基础【12】 日期类型
  5. boost::regex模块部分正则表达式迭代相关的测试程序
  6. html5中在canvas上绘图
  7. javascript --- 使用语法糖class定义函数
  8. 深入理解redis数据类型
  9. 解析6种常用View 的滑动方法
  10. java+widthstep_关于IplImage中widthstep的大小与width,nchannels等的关系的问题
  11. Java实现海报+二维码+二维码中间log+文字合并高清图片
  12. 黑客帝国中的代码雨写法
  13. kux播放器android,kux格式转换工具
  14. python开源IP代理池--IPProxys
  15. 面向对象-当谈论面向对象的时候,我们到底在谈论什么?
  16. Excel技能树系列05:TEXT函数,IF函数和INDEX+MATCH组合查找函数
  17. nodejs 将对象转化为query(URLSearchParams)
  18. 【航拍干货】航测区域重点建筑物精细化建模航拍技巧
  19. 上项线体表位置_人体体表定位标志
  20. 基于Docker搭建DzzOffice与OnlyOffice线上协同办公服务器

热门文章

  1. XMLSpy的主要功能介绍
  2. mysql时间戳转为日期格式_mysql时间戳与日期格式的相互转换
  3. HTTP协议与内容压缩(HTTP协议详解)
  4. 我的第一个C语言:用点阵显示出我的名字拼音首字母。
  5. 新手如何学习FPGA技术
  6. 虚幻4地形怎么增加层_虚幻周报20200512 | 该来的总会来的!
  7. React 18 新特性
  8. 神舟微型计算机登录密码忘记,win10开机密码忘记按f2(win10忘记密码强制重置)
  9. 从北向南高校王牌专业浅析
  10. 条形码技术应用属于计算机系统的,条形码技术在现代物流系统中的应用