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 相关文章推荐
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
js确认删除对话框效果的示例代码
Feb 20 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
Jun 06 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
Jun 02 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
JS创建对象的写法示例
Nov 04 Javascript
Vuejs 组件——props数据传递的实例代码
Mar 07 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
Jun 25 Javascript
vue中路由跳转不计入history的操作
Sep 21 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二维数组排序详解
2013/11/06 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
简单理解PHP的面向对象编程方式
2016/05/17 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
用js实现随机返回数组的一个元素
2007/08/13 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
Python多线程学习资料
2012/12/19 Python
django 创建过滤器的实例详解
2017/08/14 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
中学门卫岗位职责
2013/12/26 职场文书
留学自荐信写作方法
2014/01/27 职场文书
应届毕业生自荐书
2014/06/18 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
入团介绍人意见范文
2015/06/04 职场文书
体育委员竞选稿
2015/11/21 职场文书
nginx请求限制配置方法
2021/07/09 Servers
 Python 中 logging 模块使用详情
2022/03/03 Python
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP