VueRouter

ops/2024/10/19 2:23:39/

目录

入门

Router-view

路由基本使用

动态路由匹配

带参数的动态路由匹配

路由响应参数的变化

捕获所有路由或404 not found 路由

嵌套路由

编程式导航

导航到不同的位置

替换当前位置

横跨历史

命名路由

命名视图

重定向和别名


入门

使用 router-link 组件进行导航 通过传递 to 指定连接

Router-link 将呈现一个带有正确和href的a标签

javascript"><router-link to="/">  go to Home </router-link>

Router-view

路由出口 路由将匹配到的组件渲染到这

路由基本使用

javascript">		//a. 定义路由const routes = [ {path:'/' // 路径, component: ()=> imort('')// 对应组件 } ]// b. 创建路由实例 并配置 路由模式Const  router = createRouter({History: //配置需要的路由模式,routes, // 路由 也可以直接在这写})// c. 挂载实例App.use(router)

动态路由匹配

带参数的动态路由匹配

动态以冒号开始

{ path:'home/:id' }

路径参数用:表示,当一个路由被匹配时,它的parmes值 通过模板的更新而改变

路由响应参数的变化

使用动态路由时 当 home/a 导航到 home/b 时, 相同的组件实例将被重复使用,

组件的生命周期函数不会被调用

如果要对同一个组件参数变化做出响应,可以使用 watch 监听 router 任意值

或者使用 beforeRouterUpdate 导航守卫 取消导航、

捕获所有路由或404 not found 路由

要匹配任意路径,可以使用自定义的路径参数 正则表达式

  1. 捕获所有路由 {path: '/:pathMath(.*)*' }  // 将匹配所有内容放在 router.params.pathMath 下
  2. 匹配以'/user- 开头' { path: '/user-:afterUser(.*)'} // 将其放在 `$route.params.afterUser` 下

嵌套路由

当router-view 中的页面也要用 <router-view>时 形成了路由嵌套

在路由 配置children

javascript">Const roter = [{path:'home/:id', component:()=>import(./home.vue),children:[     // 当home/:id/name 匹配成功时 name 渲染到 home 的内部{  path :  'name',component:() => import(./home/name.vue)}]}]  //根据需要 可以不断嵌套

当访问路径下不存在的页面时 可以写一个空路径

嵌套命名路由时

编程式导航

导航到不同的位置

通过 $router 访问路由实例  this.$router.push

想要导航不同的url,可以使用 router.push 方法  可以后退

替换当前位置

类似push,唯一不同的是 不会返回上次跳转的页面  router.replace

声明式 <router-link to="" replace> 编程式 router.replace

也可以直接传递给 push方法 新增属性 replace:true

横跨历史

指定在历史堆栈前进或后退多少步 

Routr.go(number)  向前n 步 如果没有那么多记录 失败

命名路由

为任何路由提供name

如果要使用这个路由  使用to 传递一个

命名视图

同级展示多个 <router-view> 的视图 , 用命名视图,如果没设置名字默认为default

一个视图一个组件渲染,多个视图需要多各组件,在路由界面 使用 compents 配置

javascript">{path:'/',Components:{default: 组件 // 默认rouer-view 名name名}}

重定向和别名

VueRouter 中可以通过配置重定向和别名来方便地处理路由跳转。

重定向可以通过在路由配置中使用 redirect 字段来实现,指定需要重定向的路由路径:

javascript">const router = new VueRouter({routes: [{path: '/home',component: Home},{path: '/about',redirect: '/home'}]
})

在上面的配置中,当用户访问 /about 路径时,会自动重定向到 /home 路径。

别名可以通过在路由配置中使用 alias 字段来实现,表示某个路径的别名路由:

javascript">const router = new VueRouter({routes: [{path: '/about',component: About},{path: '/info',alias: '/about'}]
})

在上面的配置中,当用户访问 /about 或 /info 路径时,都会展示 About 组件的内容。

通过重定向和别名的配置,可以更加灵活地进行路由跳转和管理,提升用户体验和开发效率。


http://www.ppmy.cn/ops/26882.html

相关文章

测试开发 | 相比 Selenium,Web 自动化测试框架 Playwright 有哪些强大的优势?

Playwright 是由微软的研发团队所开发的一款 Web 自动化测试框架&#xff0c;这个框架具有多平台、跨语言的特点。除了基本的自动化测试能力之外&#xff0c;同时它还具备非常强大的录制功能、追踪功能。以下是 Playwright 与 Selenium 的对比。 ​ 由此可见&#xff0c;Play…

从阿里云崩溃看IT系统非功能能力验证

昨天下午6点左右学员群里有人说阿里云又出问题了&#xff0c;并且还挺长时间没有恢复了。 我也登录了一下&#xff0c;结果登录直接不停地302。如下所示&#xff1a; 做为阿里云重要的基础设施&#xff0c;这一故障影响了。如官方通告的处理时间线&#xff1a; 17:44起&#…

webpack

1、现代web开发的问题&#xff1a; 1&#xff09;采用模块化开发&#xff0c;但是不同的浏览器对于模块化的支持不一样&#xff0c;模块化本身又存在多种规范 2&#xff09;使用新特性例如es或者ts来编写代码&#xff0c;提高效率保证安全性&#xff0c;也会用sass,less来编写…

前端 判断和获取各种数据类型

文章目录 判断数据类型数组字符串数字布尔值对象函数空值未定义SymbolBigInt获取数据类型当在前端开发中需要判断各种数据类型时,可以使用以下方法: 数据类型判断方法数组Array.isArray(value)字符串typeof value === string

vue3+vite使用Monaco-editor

安装Monaco-editor npm install monaco-editor 安装Vite Plugin Monaco Editor vdesjs/vite-plugin-monaco-editor - Vite 中文文档 npm install --save-dev vite-plugin-monaco-editorvite.config.ts : import { defineConfig } from vite; import monacoEditorPlugin fr…

Web前端开发 小实训(一) 成绩分类统计

用于学生web前端开发课程实训练习&#xff0c;掌握基本语法和数据类型 实训目的 使用分支语句&#xff0c;完成分数统计与等级对比,通过输入框输入分数&#xff0c;可以根据分数多少划分等级。 参考思路&#xff1a; 分析题目&#xff1a;根据输入分数进行等级划分。 操作过…

C语言创建文件夹和多级目录

C调用系统命令创建多级目录 #include <stdio.h> #include <stdlib.h>int main() {const char *path "a/b/c";// 创建目录命令的字符串char mkdir_command[100];sprintf(mkdir_command, "mkdir %s", path);// 调用系统命令system(mkdir_comma…

【云原生】Docker 实践(三):使用 Dockerfile 文件构建镜像

Docker 实践&#xff08;三&#xff09;&#xff1a;使用 Dockerfile 文件构建镜像 1.使用 Dockerfile 文件构建镜像2.Dockerfile 文件详解 1.使用 Dockerfile 文件构建镜像 Dockerfile 是一个文本文件&#xff0c;其中包含了一条条的指令&#xff0c;每一条指令都用于构建镜像…