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中的var_dump函数实现代码
Sep 07 Javascript
jquery uaMatch源代码
Feb 14 Javascript
javascript正则匹配汉字、数字、字母、下划线
Apr 10 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
JavaScript阻止回车提交表单的方法
Dec 30 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
Jun 14 Javascript
JS中mouseup事件丢失的原因与解决办法
Jun 14 Javascript
javaScript日期工具类DateUtils详解
Dec 08 Javascript
Vue filter介绍及详细使用
Apr 04 Javascript
js使用Promise实现简单的Ajax缓存
Nov 14 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
第五节 克隆 [5]
2006/10/09 PHP
Get或Post提交值的非法数据处理
2006/10/09 PHP
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
2015/10/22 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
让python在hadoop上跑起来
2016/01/27 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
仓库管理员岗位职责
2014/03/19 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
北京导游词
2015/02/12 职场文书
中学生自我评价2015
2015/03/03 职场文书
2015年社区教育工作总结
2015/05/13 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python