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 防止刷新,后退,关闭
Aug 07 Javascript
JS 各种网页尺寸判断实例方法
Apr 18 Javascript
jQuery中append()方法用法实例
Dec 25 Javascript
利用js实现禁止复制文本信息
Jun 03 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
Oct 26 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
May 04 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
微信小程序如何使用canvas二维码保存至手机相册
Jul 15 Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
Jul 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
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
node.js中的fs.readFile方法使用说明
2014/12/15 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python计算书页码的统计数字问题实例
2014/09/26 Python
Python读写配置文件的方法
2015/06/03 Python
Python程序中设置HTTP代理
2016/11/06 Python
python 接口_从协议到抽象基类详解
2017/08/24 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
Python实现GIF图倒放
2020/07/16 Python
抽象类和接口的区别
2012/09/19 面试题
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
GWT都有什么特性
2016/12/02 面试题
学雷锋演讲稿汇总
2014/05/10 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
家长会开场白和结束语
2015/05/29 职场文书