Vue-Router 第二节:动态路由

Vue-Router 第二节:动态路由

1、动态路由

在日常开发中,我们某一组的用户(ID不同)要看到同一个组件,例如技术部要看到相关技术部的文档页面,这时我们可以用到动态路由 ;在路由配置时 使用一个动态字段来实现。称之为路径参数

创建组件:user

下面我们来添加一个/user/...的动态路由。

javascript 复制代码
// router/index.ts页面
const routes: Array<RouteRecordRaw> = [
    // 可直接导入或者引入
    {
        path: '/',
        component: () => import("@/views/home/index.vue"),
    },
    {
        path: '/about',
        component: About
    },
    {        // 动态字段以:开始 这里就是id                      
        path: '/user/:id',
        component: import("@/views/user/index.vue")
    }
]

user/101,user/102等这些url都会进入这个路由组件中。以下模拟下:

xml 复制代码
// APP.vue页面
<template>
  <div>
    <router-link to="/about">go About</router-link>
    <br>
    <router-link to="/">go Home</router-link>
    <br>
    <router-link to="/user/A">模拟A进入技术部</router-link>
    <br>
    <router-link to="/user/B">模拟B进入技术部</router-link>
    <router-view />
  </div>
</template>
​
<script setup lang="ts">
​
​
</script>
​
​
<style scoped></style>
​

2、动态路由参数的变化

点击这两个路由都可以进入我们的user 组件中。在我们user 组件中可以通过$route.params来获取我们传的参数。在这种使用情况下,组件重复使用肯定是比卸载再创建高效多,所以此组件的生命周期是无效的,我们要监听其参数的变化,就可以来监听$route.params

3、匹配404Not found 路由

在我们上面我们匹配的路由都是/user 当我们想匹配所有路径的路由,使用正则表达式来匹配URL。

javascript 复制代码
// router/index.ts页面
const routes: Array<RouteRecordRaw> = [
    // 可直接导入或者引入
    {
        path: '/',
        component: () => import("@/views/home/index.vue"),
    },
    {
        path: '/about',
        component: About
    },
    {
        path: '/user/:id',
        component: import("@/views/user/index.vue")
    },
    {
        path: '/:pages(.*)*',      // 使用正则表达式来匹配URL (.*)表示可以匹配任何数量的任何字符 *表示前面的元素(.*)可以出现零次或多次
        component: import("@/views/notFont/index.vue")
    }
]
ini 复制代码
// 模拟任意url  
<router-link to="/not/page/notfont">进入其他不知名页面</router-link>
相关推荐
鱼樱前端12 小时前
别再自己拼凑了!这款 Vue 3.5+ 严肃产品级组件库,把 AI 对话、工作流和复杂数据全包了!
javascript·vue.js·github
Listen·Rain13 小时前
Vue3:setup详解
前端·javascript·vue.js
只会cv的前端攻城狮17 小时前
动态组件架构设计:从配置到事件驱动全链路解析
前端·vue.js
万敏17 小时前
Vue3 全栈实战第二周:Pinia + Vite + Router + axios 完整记录
vue.js·node.js·全栈
OpenTiny社区17 小时前
TinyEngine 2.11版本发布:AI 进一步融入画布,Vue 工程可一键转DSL
前端·vue.js·github
用户198834243622119 小时前
在vue中,abortController调用导致的内存泄漏问题
vue.js
HackTwoHub1 天前
AntiDebug Mcp、AI逆向绕过前端,Hook 加密接口,抓取 Vue 路由漏洞,接入 MCP 让 AI 自动化挖掘前端漏洞
前端·vue.js·人工智能·安全·web安全·网络安全·系统安全
李明卫杭州1 天前
还在用 Vue2 的 $set?一文吃透 Observable 响应式原理与 Vue3 的 Proxy 重构
vue.js
英勇无比的消炎药1 天前
层级选择不再手写联动:TinyVue Cascader 级联选择器上手
vue.js
摇滚侠1 天前
SpringBoot3+Vue3 全套视频教程 61
vue.js