vue?跳轉(zhuǎn)頁面$router.resolve和$router.push案例詳解
寫下我遇到的問題,調(diào)用后端接口返回html字符串包括script標(biāo)簽,現(xiàn)在需要跳轉(zhuǎn)到新頁面顯示這個html。
push+query傳參可以打開新窗口,但參數(shù)是在地址欄顯示的,可能是script里面再次有觸發(fā)接口的行為,頁面會顯示鏈接不安全之類。
所以改用push+params,但這種是在當(dāng)前頁面打開,不能打開新窗口。
再改用resolve+params,這種跳轉(zhuǎn)到新頁面又獲取不到參數(shù)了。(別的博文也有寫到確實如此)
所以想著先用push+query跳頁面1且傳參,但不渲染頁面1且同時再push+params跳轉(zhuǎn)到新頁面2(但是沒有打開新窗口)
這樣實現(xiàn)了既跳轉(zhuǎn)了新頁面,又不會讓后端檢測到頁面鏈接不安全之類的。
代碼部分:
地址欄傳參跳轉(zhuǎn)
let routeData = this.$router.resolve({ name: 'hfRecharge', query: { html: response }}); window.open(routeData.href, '_blank');
再,params傳參跳頁面,讓地址欄不顯示參數(shù)
mounted() { let routeData = this.$router.push({ name: 'hfRechargeShow', params: { html: this.$route.query.html }}); }
最后,渲染頁面
mounted() { const div = document.createElement('div'); div.innerHTML = this.$route.params.html; document.body.appendChild(div); document.forms[0].submit(); }
23年4月6日
import qs from 'qs' let routeData = this.$router.resolve({name: 'pageName', query: {form: qs.stringify(response.data)}});
文章前頭寫過resove+query傳參后頁面取不到參數(shù),我遇到的情況是我傳的參數(shù)是個對象,所以利用了qs,在新頁面再
const form = qs.parse(this.$route.query.form);
解析為對象就可以.出具體值了。
到此這篇關(guān)于vue 跳轉(zhuǎn)頁面$router.resolve和$router.push的文章就介紹到這了,更多相關(guān)vue 跳轉(zhuǎn)頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue的filters(本地)或filter(全局)過濾常用數(shù)據(jù)類型解析
這篇文章主要介紹了Vue的filters(本地)或filter(全局)過濾常用數(shù)據(jù)類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07