vue路由监听和参数监听
1.路由携带数据跳转
routerAction(hideDisplays, data) {
switch (hideDisplays) {
case "pubAccountMenu":
this.$router.push({
name: "AppAccountInfo",
});
break;
//在菜单路由上存储各种需要信息
case "publicDocInfoMenu": //菜单code: publicDocInfoMenu
data.instanceInfo.active = 4 //标记已点击的标签页
data.instanceInfo.fromMenu = true
data.instanceInfo.editOrAdd = false;
this.getUcMenuInfo(data.instanceInfo) //数据、对象等
this.$router.push({
name: "DocumentInfoMaint",
params: {
instanceInfo: data.instanceInfo,
uuid: data.uuid,
breadCrumb: data.instanceInfo.name,
breadCrumbEn: En_Name,
prefix: 'text.breadCrumb.MyUseCase', //面包屑信息
prefixPath: '/MyApplications',
breadPath: '/AppInfo/' + data.uuid,
routeName:'AppInfo',
prefixRouteName:'MyApplications',
firstRoute:true
}
});
break;
}
}
2.路由监听
watch: {
$route: function (to, from) {
if (this.$route.params.instanceInfo) {
// let data = JSON.parse(this.$route.params.instanceInfo);
let isObject = this.$route.params.instanceInfo; //获取路由传过来的数据
//判断数据是否为对象,如果不是,则解析并获取数据
let data = isObject instanceof Object ? this.$route.params.instanceInfo : JSON.parse(this.$route.params.instanceInfo);
this.currentProductId = data.uuid;
this.solutionUuid = data.uuid;
this.setValue(data)
localStorage.setItem('SolutionInfo', JSON.stringify(data));
} else if (localStorage.getItem("SolutionInfo")) {//在浏览器的本地存储中获取数据
//一般数据在浏览器的本地存储中会以JOSN字符串的方式存储,所以要把数据转换成JSON对象来使用
let data = JSON.parse(localStorage.getItem("SolutionInfo"));
this.currentProductId = data.uuid;
this.solutionUuid = data.uuid;
this.setValue(data)
}
}
}
3.值监听
页面A:
//定义要监听的对象
<vm-register-table :param="param" :child-open-table="jumpOrDialog" /> 例如监听param:
(1).若param为对象,则需要把它转换成JSON字符串
let tenantParam = {
tenantId:tenantId,
isTerminals: this.jumpOrDialog.isTerminals
}
this.param = JSON.stringify(tenantParam);
(2).若param为字符串,则不用做任何转换
this.param = currentPage; 页面B:
//1.注册监听对象
props: ['childOpenTable','param'], //2.监听
(1).
watch:{
param:function(oldValue){
console.log("newValue++"+oldValue)
let jumpOrDialog = JSON.parse(oldValue)
console.log("jumpOrDialog==++"+jumpOrDialog)
let isTerminal = jumpOrDialog.isTerminals
if(isTerminal){
this.tenantId = jumpOrDialog.tenantId;
}else{
let userInfo = JSON.parse(localStorage.getItem("userInfo"))
this.tenantId = userInfo.tenantId;
}
let vmData = {
tenantId: this.tenantId,
pageNum: this.pageNum,
pageSize: this.pageSize
}
this.getAllVmRegister(vmData);
}
},
(2).
watch:{
param:function(oldValue){
let pages = JSON.parse(oldValue)
this.currentPage = pages;
}
}
vue路由监听和参数监听的更多相关文章
- Vue路由规则中定义参数
Vue使用routerLinke定义参数的时候 路由规则中不需要更改任何属性. 路由其实就是我们在html中定义的锚点,点击这个连接跳转一个锚点.vue中的路由也是这个原理, 前提是路由必须创建在实 ...
- vue路由跳转传参数
1. router-link <router-link :to="{ path: 'yourPath', params: { name: 'name', dataObj: data } ...
- vue 路由缓存 路由嵌套 路由守卫 监听物理返回
最近开发vue项目,遇到的一些问题,这里整合一下,看到一些博客已经有写相关知识,然后自己再次记录一下. 这是关于vue路由相关比较常见的问题,以后遇到相关路由的问题,会不断更新这篇博客. 需求1:从填 ...
- vue路由钩子拦截器beforeEach和afterEach及页面路由变化路由监听
在路由跳转的时候,我们需要一些权限判断或者其他操作.这个时候就需要使用路由的钩子函数. 定义:路由钩子主要是给使用者在路由发生变化时进行一些特殊的处理而定义的函数. 总体来讲vue里面提供了三大类钩子 ...
- onscroll事件没有响应的原因以及vue.js中添加onscroll事件监听的方法
1 onscroll事件失效 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- vue watch 深度监听以及立即监听
vue watch对象可以监听数据,数据发生变化,处理函数 watch虽可以监听,但只是浅监听,只监听数据第一层或者第二层.比如对于整个对象的监听,需要用到深度监听 vm.$watch('obj',f ...
- vue中给window添加滚动监听无效的解决方案
原文链接: 点我 页面中有这么一个需求,当页面滚动到一定高度之后,页面中的某些元素进行吸顶,固定到顶部位置,或者是滚动到一定程度进行更新数据的操作.我相信不少网友查阅过类似的资料,网友给出的解决方案, ...
- Oracle静态监听与动态监听概念全解析
基于11g,linux5.5做出的测试,单实例数据库做出的测试. 1.注册 Instance到监听器去注册自己的Instance_name与ORACLE_HOME,还可以选择添加global_dbna ...
- js实现事件监听与阻止监听传播
监听事件: 使用attachEvent(用于IE)和addEventListener(用于谷歌.火狐)时则可以实现多个事件处理函数的调用 1.下面都是dom对象的方法,可以实现一种事件绑定多个事件处理 ...
随机推荐
- .NET 6 中的HTTP 3支持
dotnet团队官方博客发布了一篇HTTP3的文章:HTTP/3 support in .NET 6:https://devblogs.microsoft.com/dotnet/http-3-supp ...
- symfony2 数据库原生查询
1. 数组,没有键名 但只查询出第一个结果 $conn = $this->getDoctrine()->getConnection(); $data = $conn->fetchAr ...
- Linux系列(11) - PATH环境变量
前言 在Liunx当中要想执行"执行脚本"."执行文件"或者"执行命令",需要用绝对路径:因此环境变量就出来了,将路径放到环境变量中,环境变 ...
- Shell系列(39) - dirname
dirname作用 dirname实际工作中常常是跟$0一起使用 用于获取当前运行脚本的绝对路径 这个命令要放在shell脚本中使用,在命令行使用意义不大 [yutao@master01 ~]$ di ...
- 一文让你快速入门pytest框架
pytest是什么 官方文档描述: pytest is a framework that makes building simple and scalable tests easy. Tests ar ...
- 牛客挑战赛48E-速度即转发【带修莫队,分块】
正题 题目链接:https://ac.nowcoder.com/acm/contest/11161/E 题目大意 给出\(n\)个数字的一个序列,\(m\)个操作. 给出\(l,r,k\),求一个最大 ...
- P3793-由乃救爷爷【分块,ST表】
正题 题目链接:https://www.luogu.com.cn/problem/P3793 题目大意 给出\(n\)个数字的一个序列\(m\)次询问区间最大值 保证数据随机 \(1\leq n,m\ ...
- truncate表时报“唯一/主键被启用的外部关键字引用”解决办法
前言:清空表时提示"唯一/主键被启用的外部关键字引用"这一警告信息 原因:是因为主键被子表引用,所以对主键进行更改就好了 解决: 使用 alter table table_name ...
- C++ 可变数组实现
话不多说,直接上代码,看注释 template<class T> // 支持传入泛型,但string这种可变长度的类型还不支持 class Array { int mSize = 0, m ...
- Java面向对象/面向过程
面向过程 第一步做啥 第二部做啥 依此类推 层层递进 比如要弄一辆自行车 面向过程 搞车轮子 车链子 一步步来 如果有个地方坏了 说不定整个车都要拆了重新弄 扩展性很差 维护性也很差 速度比较快 面向 ...