您好,登錄后才能下訂單哦!
1、路由攜帶數(shù)據(jù)跳轉(zhuǎn)
routerAction(hideDisplays, data) { switch (hideDisplays) { case "pubAccountMenu": this.$router.push({ name: "AppAccountInfo", }); break; //在菜單路由上存儲(chǔ)各種需要信息 case "publicDocInfoMenu": //菜單code: publicDocInfoMenu data.instanceInfo.active = 4 //標(biāo)記已點(diǎn)擊的標(biāo)簽頁(yè) data.instanceInfo.fromMenu = true data.instanceInfo.editOrAdd = false; this.getUcMenuInfo(data.instanceInfo) //數(shù)據(jù)、對(duì)象等 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、路由監(jiān)聽
watch: { $route: function (to, from) { if (this.$route.params.instanceInfo) { // let data = JSON.parse(this.$route.params.instanceInfo); let isObject = this.$route.params.instanceInfo; //獲取路由傳過來的數(shù)據(jù) //判斷數(shù)據(jù)是否為對(duì)象,如果不是,則解析并獲取數(shù)據(jù) 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")) {//在瀏覽器的本地存儲(chǔ)中獲取數(shù)據(jù) //一般數(shù)據(jù)在瀏覽器的本地存儲(chǔ)中會(huì)以JOSN字符串的方式存儲(chǔ),所以要把數(shù)據(jù)轉(zhuǎn)換成JSON對(duì)象來使用 let data = JSON.parse(localStorage.getItem("SolutionInfo")); this.currentProductId = data.uuid; this.solutionUuid = data.uuid; this.setValue(data) } } }
3、值監(jiān)聽
頁(yè)面A: //定義要監(jiān)聽的對(duì)象 <vm-register-table :param="param" :child-open-table="jumpOrDialog" /> 例如監(jiān)聽param: (1).若param為對(duì)象,則需要把它轉(zhuǎn)換成JSON字符串 let tenantParam = { tenantId:tenantId, isTerminals: this.jumpOrDialog.isTerminals } this.param = JSON.stringify(tenantParam); (2).若param為字符串,則不用做任何轉(zhuǎn)換 this.param = currentPage; 頁(yè)面B: //1.注冊(cè)監(jiān)聽對(duì)象 props: ['childOpenTable','param'], //2.監(jiān)聽 (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實(shí)現(xiàn)路由監(jiān)聽和參數(shù)監(jiān)聽就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。