vue实现路由监听和参数监听


Posted in Javascript onOctober 29, 2019

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实现路由监听和参数监听就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
encode脚本和normal脚本混用的问题与解决方法
Mar 08 Javascript
Javascript 遮罩层和加载效果代码
Aug 01 Javascript
extjs 分页使用jsp传递数据示例
Jul 29 Javascript
jQuery中removeAttr()方法用法实例
Jan 05 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
Apr 06 Javascript
原生JS实现-星级评分系统的简单实例
Aug 21 Javascript
Vue.js中用v-bind绑定class的注意事项
Dec 13 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 Javascript
JavaScript数组和对象的复制
Mar 21 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
JS实现浏览上传文件的代码
Aug 23 Javascript
Vue和React有哪些区别
Sep 12 Javascript
基于axios 的responseType类型的设置方法
Oct 29 #Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 #Javascript
vue + elementUI实现省市县三级联动的方法示例
Oct 29 #Javascript
vue 强制组件重新渲染(重置)的两种方案
Oct 29 #Javascript
javascript实现简单打字游戏
Oct 29 #Javascript
简单使用webpack打包文件的实现
Oct 29 #Javascript
vue 解决异步数据更新问题
Oct 29 #Javascript
You might like
在JavaScript中调用php程序
2009/03/09 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
php实现评论回复删除功能
2017/05/23 PHP
浅谈PHPANALYSIS提取关键字
2019/03/08 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
python http接口自动化脚本详解
2018/01/02 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Python常用特殊方法实例总结
2019/03/22 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
python 实现端口扫描工具
2020/12/18 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
Sony C++笔试题
2013/03/10 面试题
委托书英文
2015/01/28 职场文书
数学备课组工作总结
2015/08/12 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers