vue实现路由监听和参数监听

 更新时间:2019年10月29日 09:54:33   作者:zhusf  
今天小编就为大家分享一篇vue实现路由监听和参数监听,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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实现路由监听和参数监听就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • el-table 表格最大高度max-height的问题解决

    el-table 表格最大高度max-height的问题解决

    在工作中遇到了多个滚动条的情况,是因为el-table的max-height设置为固定值导致的,本文主要介绍了el-table 表格最大高度max-height的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • el-table实现搜索高亮展示并滚动到元素位置的操作代码

    el-table实现搜索高亮展示并滚动到元素位置的操作代码

    这篇文章主要介绍了el-table实现搜索高亮展示并滚动到元素位置,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • ElementUI实现el-table列宽自适应的代码详解

    ElementUI实现el-table列宽自适应的代码详解

    这篇文章给大家介绍了ElementUI实现el-table列宽自适应的详细步骤,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • vue使用自定义指令实现拖拽

    vue使用自定义指令实现拖拽

    这篇文章主要为大家详细介绍了vue使用自定义指令实现拖拽,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 使用Vue3实现列表虚拟滚动的详细步骤

    使用Vue3实现列表虚拟滚动的详细步骤

    在前端开发中,列表的虚拟滚动是一种常见的优化手段,可以大大提升页面性能,在Vue3中,我们可以通过一些技巧来实现列表的虚拟滚动,本文将介绍如何使用Vue3实现列表的虚拟滚动,让你的页面加载更快、更流畅,需要的朋友可以参考下
    2024-09-09
  • el-upload前端实现多文件上传功能示例

    el-upload前端实现多文件上传功能示例

    在Vue.js中可以使用Element UI库中的<el-upload>组件来实现多文件上传的功能,这篇文章主要给大家介绍了关于el-upload前端实现多文件上传功能的相关资料,需要的朋友可以参考下
    2024-07-07
  • vue中的router-view组件的使用教程

    vue中的router-view组件的使用教程

    这篇文章主要介绍了vue中的router-view组件的使用教程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • vue3中实现组件通信的方法总结

    vue3中实现组件通信的方法总结

    在Vue3中,有多种方法可以实现组件之间的通信,本文就通过代码示例给大家总结一些vue3实现组件通信的常用方法,需要的朋友可以参考下
    2023-06-06
  • vue3 微信扫码登录及获取个人信息实现的三种方法

    vue3 微信扫码登录及获取个人信息实现的三种方法

    本文主要介绍了vue3 微信扫码登录及获取个人信息实现的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Vue中使用 Aplayer 和 Metingjs 添加音乐插件的方式

    Vue中使用 Aplayer 和 Metingjs 添加音乐插件的方式

    这篇文章主要介绍了Vue中使用 Aplayer 和 Metingjs 添加音乐插件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08

最新评论