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 错误处理的几种方法
Jun 13 Javascript
js获取某月的最后一天日期的简单实例
Jun 22 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
JavaScript实现的浮动层框架用法实例分析
Oct 10 Javascript
深入理解Node.js的HTTP模块
Oct 12 Javascript
jQuery+ajax实现修改密码验证功能实例详解
Jul 06 jQuery
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
Oct 17 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
Oct 24 Javascript
基于axios封装fetch方法及调用实例
Feb 05 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 Javascript
详解微信小程序支付流程与梳理
Jul 16 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获取网络文件的实现代码
2010/01/01 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python生成MD5值的两种方法实例分析
2019/04/26 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
python实现打砖块游戏
2020/02/25 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
大四本科生的自我评价
2013/12/30 职场文书
英语教师自荐信
2014/05/26 职场文书
水利水电专业自荐信
2014/07/08 职场文书
公司法定代表人授权委托书
2014/09/29 职场文书
接待员岗位职责
2015/02/13 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python