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 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 Javascript
javascript之AJAX框架使用说明
Apr 24 Javascript
js读写json文件实例代码
Oct 21 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
PHP+mysql+Highcharts生成饼状图
May 04 Javascript
使用JQuery实现智能表单验证功能
Mar 08 Javascript
jQuery绑定事件-多种实现方式总结
May 09 Javascript
JavaScript职责链模式概述
Sep 17 Javascript
使用BootStrap实现悬浮窗口的效果
Dec 13 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
Koa日志中间件封装开发详解
Mar 09 Javascript
jQuery分组选择器简单用法示例
Apr 04 jQuery
基于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+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php微信开发之谷歌测距
2018/06/14 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
js实现类似MSN提示的页面效果代码分享
2015/08/24 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
2016/10/10 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
javascript常用的设计模式
2017/02/09 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
在Python中使用异步Socket编程性能测试
2014/06/25 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
详解Python locals()的陷阱
2019/03/26 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
办公室文秘岗位职责
2013/11/15 职场文书
如何填写个人简历自我评价
2013/12/10 职场文书
企业车辆管理制度
2014/01/24 职场文书
请假条怎么写
2014/04/10 职场文书
党风廉政建设责任书
2014/04/14 职场文书
租房协议书
2014/09/12 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
Go语言编译原理之源码调试
2022/08/05 Golang