VueRouter3学习笔记
文章目录
- 1,入门案例
- 2,一些细节
- 高亮效果
- 非当前路由会被销毁
- 3,嵌套路由
- 4, 传递查询参数
- 5,命名路由
- 6,传递路径参数
- 7,路径参数转props
- 8,查询参数转props
- 9,replace模式
- 10,编程式导航
- 11,缓存路由组件
- 12,新生命周期
- 13,路由守卫
1,入门案例
安装库。
npm install vue-router@3
准备三个组件。
App.vue
AAA.vue
BBB.vue
<template><div><router-link to="/a">aaa</router-link><router-link to="/b">bbb</router-link><router-view /></div>
</template><template><div>AAA</div>
</template><template><div>BBB</div>
</template>
新建router.js。
import Vue from 'vue'
import VueRouter from 'vue-router'
import AAA from "./AAA.vue"
import BBB from "./BBB.vue"Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/a', component: AAA },{ path: '/b', component: BBB }]
})
export default router
main.js。
import router from './router.js'new Vue({render: h => h(App),router
}).$mount('#app')
效果:


2,一些细节
高亮效果
router-link的active-class属性,指定当前路由链接的高亮类名。
<template><div><router-link to="/a" active-class='abc'>aaa</router-link><router-link to="/b" active-class='abc'>bbb</router-link><router-view /></div>
</template>
<style>
.abc {color: red;
}
</style>
非当前路由会被销毁
<template><div>AAA</div>
</template>
<script>
export default {beforeDestroy() {console.log(1);}
}
</script>
3,嵌套路由
AAA内还有CCC和DDD。
二级路由链接要从一级开始写,
配置项无须加斜线。
<template><div><router-link to="/a">aaa</router-link><router-link to="/b">bbb</router-link><router-view /></div>
</template><template><div><router-link to="/a/c">ccc</router-link><router-link to="/a/d">ddd</router-link><router-view /></div>
</template><template><div>BBB</div>
</template><template><div>CCC</div>
</template><template><div>DDD</div>
</template>
router.js。
import Vue from 'vue'
import VueRouter from 'vue-router'
import AAA from "./AAA.vue"
import BBB from "./BBB.vue"
import CCC from './CCC.vue'
import DDD from './DDD.vue'
Vue.use(VueRouter)const router = new VueRouter({routes: [{path: '/a', component: AAA,children: [{path: 'c', component: CCC}, {path: 'd', component: DDD}]},{ path: '/b', component: BBB }]
})
export default router
4, 传递查询参数
发送。
<template><div><router-link to="/a?id=123">aaa</router-link><router-link to="/a?id=124">aaa</router-link><router-link to="/b">bbb</router-link><router-view /></div>
</template>
接收。
<template><div>AAA{{ $route.query.id }}</div>
</template>
发送的第二种写法。
<template><div><router-link :to="{path: '/a',query: {id: 123}}">aaa</router-link><router-link to="/a?id=124">aaa</router-link><router-link to="/b">bbb</router-link><router-view /></div>
</template>
5,命名路由
给路由起个名字。
import Vue from 'vue'
import VueRouter from 'vue-router'
import AAA from "./AAA.vue"
import BBB from "./BBB.vue"Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/a', component: AAA, name: "a" },{ path: '/b', component: BBB, name: "b" }]
})
export default router
跳转时传递名称。
<template><div><router-link :to="{name: 'a'}">aaa</router-link><router-link :to="{name: 'b'}">bbb</router-link><router-view /></div>
</template>
6,传递路径参数
发送。
<template><div><router-link to="/a/123">aaa</router-link><router-link to="/a/124">aaa</router-link><router-link to="/b">bbb</router-link><router-view /></div>
</template>
配置。
import Vue from 'vue'
import VueRouter from 'vue-router'
import AAA from "./AAA.vue"
import BBB from "./BBB.vue"Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/a/:id', component: AAA },{ path: '/b', component: BBB }]
})
export default router
接收。
<template><div>AAA{{ $route.params.id }}</div>
</template>
7,路径参数转props
启用props,会将所有路径参数通过props传递给组件。
import Vue from 'vue'
import VueRouter from 'vue-router'
import AAA from "./AAA.vue"
import BBB from "./BBB.vue"Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/a/:id', component: AAA, props: true },{ path: '/b', component: BBB }]
})
export default router
组件要声明该props。
<template><div>AAA{{ id }}</div>
</template>
<script>
export default {props: ['id']
}
</script>
8,查询参数转props
props写成函数。
import Vue from 'vue'
import VueRouter from 'vue-router'
import AAA from "./AAA.vue"
import BBB from "./BBB.vue"Vue.use(VueRouter)const router = new VueRouter({routes: [{path: '/a', component: AAA, props(route) {return {id: route.query.id}}},{ path: '/b', component: BBB }]
})
export default router
9,replace模式
替换掉之前的路由,而不是压栈。
<template><div><router-link to="/a" replace>aaa</router-link><router-link to="/b" replace>bbb</router-link><router-view /></div>
</template>
10,编程式导航
代码进行跳转。
<template><div><div>AAA</div><button @click="add">按钮</button></div>
</template>
<script>
export default {methods: {add() {this.$router.push("/b")}},
}
</script>
参数可以是对象,与前面route-link的to用法一致。
11,缓存路由组件
不销毁。
<keep-alive><router-view />
</keep-alive>
12,新生命周期
不销毁的时候,激活与失活。
<template><div><div>AAA</div></div>
</template>
<script>
export default {activated() {console.log(1);},deactivated() {console.log(2);},
}
</script>
13,路由守卫
相关文章:
VueRouter3学习笔记
文章目录 1,入门案例2,一些细节高亮效果非当前路由会被销毁 3,嵌套路由4, 传递查询参数5,命名路由6,传递路径参数7,路径参数转props8,查询参数转props9,replace模式10&am…...
「前端+鸿蒙」鸿蒙应用开发-TS函数
在 TypeScript 中,函数是一等公民,这意味着函数可以作为参数传递、作为其他函数的返回值,甚至可以赋值给变量。TypeScript 为 JavaScript 的函数增加了类型系统,使得函数的参数和返回值都具有明确的类型。 TS快速入门-函数 基本函…...
python后端结合uniapp与uview组件tabs,实现自定义导航按钮与小标签颜色控制
实现效果(红框内): 后端api如下: task_api.route(/user/task/states_list, methods[POST, GET]) visitor_token_required def task_states(user):name_list [待接单, 设计中, 交付中, 已完成, 全部]data []color [#F04864, …...
mingw如何制作动态库附python调用
1.mingw和msvc g -fpic HelloWorld.cpp -shared -o test.dllg -L . -ltest .\test.cpp 注意-L后面的.挨不挨着都行,-l不需要-ltest.dll,只需要-ltest 2.dll.cpp extern "C" {__declspec(dllexport) int __stdcall add(int a, int b) {return…...
Vue学习|Vue快速入门、常用指令、生命周期、Ajax、Axios
什么是Vue? Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写 基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上。官网:https://v2.cn.vuejs.org/ Vue快速入门 打开页面࿰…...
Python基础教程(八):迭代器与生成器编程
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝Ὁ…...
Oracle10.2.0.1冷备迁移之_数据文件拷贝方式
由于阿里云机房要下架旧服务器,单位未购买整机迁移服务,且业务较老不兼容Oracle11g,所以新购买一台新服务器进行安装Oracle10.2.0.1 ,后续再将数据迁移到新服务器上。 id 数据库版本 操作系统版本 实例名 源库 115.28.242.25…...
智能合约中外部调用漏洞
外部调用 : 在智能合约开发中,调用不受信任的外部合约是一个常见的安全风险点。这是因为,当你调用另一个合约的函数时,你实际上是在执行那个合约的代码,而这可能会引入你未曾预料的行为,包括恶意行为。下面…...
转型AI产品经理(4):“认知负荷”如何应用在Chatbot产品
认知负荷理论主要探讨在学习过程中,人脑处理信息的有限容量以及如何优化信息的呈现方式以促进学习。认知负荷定律认为,学习者的工作记忆容量是有限的,而不同类型的认知任务会对工作记忆产生不同程度的负荷,从而影响学习效果。以下…...
【C++11】常见的c++11新特性(一)
文章目录 1. C11 简介2. 常见的c11特性3.统一的列表初始化3.1initializer_list 4. decltype与auto4.1decltype与auto的区别 5.nullptr6.右值引用和移动语义6.1左值和右值6.1.1左值的特点6.1.2右值的特点6.1.3右值的进一步分类 6.2左值引用和右值引用以及区别6.2.1左值引用6.2.2…...
牛客周赛 Round 46 题解 C++
目录 A 乐奈吃冰 B 素世喝茶 C 爱音开灯 D 小灯做题 E 立希喂猫 F 祥子拆团 A 乐奈吃冰 #include <iostream> #include <cstring> #include <algorithm> #include <cmath> #include <queue> #include <set> #include <vector>…...
9.3 Go 接口的多态性
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
Java通过字符串字段匹配形成树形结构
Java通过字符串字段匹配形成树形结构 文章目录 Java通过字符串字段匹配形成树形结构数据表模拟数据解决办法:1、domian 类:2、Node层(形成树形关系):3、controller 层4、Util 工具类1、BeanCopierUtil4、Mapper5、Manager(用来组装树形结构)6、测试:有的时候我们形成树形不…...
数字孪生智慧水利:精准管理与智能决策的新时代
图扑数字孪生技术在智慧水利中的应用,通过虚拟模型与真实水利系统的无缝连接,实现对水资源和水利工程的全面监控和精细管理。实时数据采集与动态模拟提升了水利系统的预测和响应能力,从洪水预警到水质监测,数字孪生助力各项决策更…...
基于ChatGLM3的本地问答机器人部署流程
基于ChatGLM3的本地问答机器人部署流程 前言一、确定文件结构1.新建文件夹储存本地模型2.下载源码和模型 二、Anaconda环境搭建1.创建anaconda环境2.安装相关库3.设置本地模型路径4.启动 三、构建本地知识库1.下载并安装postgresql2.安装c库3.配置向量插件 四、线上运行五、 全…...
归并排序——逆序数对的统计
逆序数对的统计 题目描述 运行代码 #include <iostream> using namespace std; #define LL long long const int N 1e5 5; int a[N], tmp[N]; LL merge_sort(int q[], int l, int r) {if (l > r)return 0; int mid l r >> 1; LL res merge_sort(q, l,…...
基于截图和模拟点击的自动化压测工具开发(MFC)
1.背景 想对一个MFC程序做自动压测功能,根据判断程序界面某块区域是否达到预定状态,来自动执行鼠标点击或者键盘输入的操作,以解决测试人员需要重复手动压测问题。 1.涉及的技术 串口控制,基于MFC橡皮筋类(CRectTracker)做一个…...
力扣每日一题 6/10
881.救生艇[中等] 题目: 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 返回 承载所有人所需的最小船…...
[知识点] 内存顺序属性的用途和行为
C标准库中定义了以下几种内存顺序属性: std::memory_order_relaxedstd::memory_order_consumestd::memory_order_acquirestd::memory_order_releasestd::memory_order_acq_relstd::memory_order_seq_cst 1. std::memory_order_relaxed 定义:不提供同步…...
JAVA Mongodb 深入学习(二)索引的创建和优化
一、常用索引类型 1、单个索引 单个索引的创建 db.你的表名.createIndex({"你的字段名":1}) 单个索引的创建且是唯一索引 db.你的表名.createIndex({"你的字段名":1}),{ unique: true }) 2、复合索引 将多个过滤的字段,做成索引,…...
AC鸭的训练分组
题目描述 AC鸭准备参加一次训练营,一共有 n 个训练项目,第 i 个项目需要花费 ai 分钟。 训练老师要求 AC鸭按顺序完成所有项目,并且可以把这些项目分成不超过 m 组。每一组必须是连续的一段项目,同一组项目在同一天完成。 AC…...
高级技巧:利用SharpShooter实现COM Staging和应用程序白名单绕过
高级技巧:利用SharpShooter实现COM Staging和应用程序白名单绕过 【免费下载链接】SharpShooter Payload Generation Framework 项目地址: https://gitcode.com/gh_mirrors/sh/SharpShooter SharpShooter 是一款功能强大的Payload生成框架,专为安…...
Python 项目结构与相对导入的实践
在 Python 编程中,模块间的导入是非常常见的操作,但有时会遇到一些棘手的问题,比如相对导入的错误。让我们通过一个具体的例子来探讨如何解决这些问题。 问题描述 假设你有一个名为 draft 的文件夹结构如下: draft/model/a.pypackage/b.py在 b.py 中,你希望导入 a.py 中…...
别再到处找靶场了!一个OWASP BWA虚拟机搞定30+个Web漏洞环境(附SSH连接与MySQL密码修改指南)
OWASP BWA:一站式Web安全实战环境的终极解决方案 对于Web安全初学者和爱好者来说,寻找合适的漏洞靶场往往比学习技术本身更令人头疼。你是否也曾在不同平台间反复切换,下载各种零散的虚拟机镜像,只为练习一个简单的SQL注入或XSS漏…...
用树莓派+Python玩转无源蜂鸣器:手把手教你编一首《欢乐颂》(代码可调)
用树莓派Python玩转无源蜂鸣器:手把手教你编一首《欢乐颂》(代码可调) 在创客圈里,树莓派一直被誉为"万能小板",而Python则是入门门槛最低的编程语言之一。当这两者相遇,再搭配上一个简单的无源蜂…...
Postmate部署实战:从开发到生产的完整流程
Postmate部署实战:从开发到生产的完整流程 【免费下载链接】postmate 📭 A powerful, simple, promise-based postMessage library. 项目地址: https://gitcode.com/gh_mirrors/po/postmate Postmate是一个强大的、简单的、基于Promise的postMess…...
别再傻等AS下载Gradle了!手把手教你手动配置Gradle 5.4.1(附国内镜像源)
高效解决Android Studio Gradle下载难题:手动配置全攻略 每次打开Android Studio准备大展身手时,却被"Could not install Gradle distribution"的报错拦住去路?作为经历过无数次这种折磨的开发者,我完全理解那种看着进度…...
如何让Windows 11界面更顺手:ExplorerPatcher完整配置指南
如何让Windows 11界面更顺手:ExplorerPatcher完整配置指南 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher 还在为Windows 11的新界…...
PARD-SSM:基于概率状态空间模型的多阶段网络攻击检测
1. 项目概述在网络安全领域,传统的入侵检测系统(IDS)面临着多阶段攻击检测的严峻挑战。攻击者通常会按照"攻击链"(Kill Chain)的步骤逐步渗透系统,从最初的侦察阶段到最终的数据窃取,每个阶段的网络流量特征可能单独看起来都像是正…...
Spring Boot API 文档与 OpenAPI 集成最佳实践
Spring Boot API 文档与 OpenAPI 集成最佳实践 引言 API 文档是现代软件开发中不可或缺的一部分,它不仅帮助前端开发者理解如何调用后端接口,也是团队协作和维护的重要参考。Spring Boot 提供了丰富的工具来自动生成 API 文档,其中最流行的…...
