• 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;
             }
         }
  • 相关阅读:
    Apache RocketMQ + Hudi 快速构建 Lakehouse
    如何快速调度 PTS 的百万并发能力
    flask
    第三方登录————微博
    python定时获取树莓派硬件参数并使用MQTT进行数据推送
    树莓派修改时区
    windows编辑shell,报错syntax error near unexpected token `elif'
    树莓派挂载移动硬盘
    关闭树莓派摄像头红色LED指示灯
    树莓派拍照和录制视频
  • 原文地址:https://www.cnblogs.com/zhusf/p/10558768.html
Copyright © 2020-2023  润新知