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 相关文章推荐
两种WEB下的模态对话框 (asp.net或js的分别实现)
Dec 02 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
ajax提交表单实现网页无刷新注册示例
May 08 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
May 08 Javascript
JavaScript实现的使用键盘控制人物走动实例
Aug 27 Javascript
JQuery标签页效果的两个实例讲解(4)
Sep 17 Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
Apr 28 Javascript
原生JS实现轮播图效果
Oct 12 Javascript
AngularJS动态生成select下拉框的方法实例
Nov 17 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模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
python批量修改文件后缀示例代码分享
2013/12/24 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
python实现爬取图书封面
2018/07/05 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
python字符串循环左移
2019/03/08 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
XD健身器材:Kevlar球、Crossfit健身球
2019/03/26 全球购物
.net笔试题
2014/03/03 面试题
报关专员求职信范文
2014/02/22 职场文书
校园环保建议书
2014/05/14 职场文书
个人授权委托书样本
2014/09/13 职场文书
中班上学期个人总结
2015/02/12 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python