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 版本]
Mar 20 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
jQuery使用元素属性attr赋值详解
Feb 27 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
May 28 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
Vue表单实例代码
Sep 05 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
Sep 24 Javascript
JavaScript反射与依赖注入实例详解
May 29 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
May 06 Javascript
JS轻量级函数式编程实现XDM三
Jun 16 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/12 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
django1.8使用表单上传文件的实现方法
2016/11/04 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
python操作redis方法总结
2018/06/06 Python
20行python代码实现人脸识别
2019/05/05 Python
python实现复制大量文件功能
2019/08/31 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
致跳远运动员广播稿
2014/02/11 职场文书
开学典礼决心书
2014/03/11 职场文书
消防安全承诺书
2014/05/22 职场文书
施工安全责任书范本
2014/07/24 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
信访稳定工作汇报
2014/10/27 职场文书
学生检讨书范文
2014/10/30 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python