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 相关文章推荐
javascript 动态参数判空操作
Dec 22 Javascript
Node.js实现Excel转JSON
Apr 24 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
jQuery插件简单实现方法
Jul 18 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
Dec 06 Javascript
原生js实现tab选项卡切换
Mar 23 Javascript
jquery精度计算代码 jquery指定精确小数位
Feb 06 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
Sep 11 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
Sep 27 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
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php生成curl命令行的方法
2015/12/14 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python回调函数用法实例详解
2015/07/02 Python
Python检测网络延迟的代码
2018/05/15 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
网络营销策划方案
2014/06/04 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
房屋出租委托书格式
2014/09/23 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书