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 相关文章推荐
jQuery getJSON()+.ashx 实现分页(改进版)
Mar 28 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
Feb 12 Javascript
php析构函数的具体用法小结
Mar 11 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
Jul 04 Javascript
JavaScript中Cookie操作实例
Jan 09 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
Jun 05 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
May 10 Javascript
js实现微博发布小功能
Jan 12 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
Vuex实现购物车小功能
Aug 17 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
Sep 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
php实现session共享的实例方法
2019/09/19 PHP
JavaScript中的私有成员
2006/09/18 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
详解Python中用于计算指数的exp()方法
2015/05/14 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python实现关键词提取的示例讲解
2018/04/28 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
python实现猜拳游戏项目
2020/11/30 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
电子狗项圈:eDog Australia
2019/12/04 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
北京大学自荐信范文
2014/01/28 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
校园广播稿精选
2014/10/01 职场文书
政风行风评议心得体会
2014/10/21 职场文书
环卫处个人工作总结
2015/03/04 职场文书
联欢会开场白
2015/06/01 职场文书
妈妈别哭观后感
2015/06/08 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python