解決VUE-Router 同一頁(yè)面第二次進(jìn)入不刷新的問(wèn)題
最近正好遇到一個(gè)問(wèn)題,修改用戶的頭像,修改后再進(jìn)入用戶主頁(yè),發(fā)現(xiàn)改了之后即使數(shù)據(jù)變了。。頁(yè)面也不會(huì)重新渲染。。。
下面提供幾種解決方案來(lái)給予大家參考:
1. 可以在刷新的頁(yè)面定義一個(gè)參數(shù), 這樣每次都會(huì)渲染出不同的頁(yè)面:
route 實(shí)例化命名配置:
{ // 用戶信息 path: '/accountDetail/:randKey', name: 'accountDetail', component: accountDetail, meta: {requiresAuth: true} },
跳轉(zhuǎn) 的地方配置:
var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; var maxLength = 15; var res = '_jsonpphotochange'; for (var i = 0; i < maxLength; i++) { var id = Math.ceil(Math.random() * 35); res += chars[id]; } // res 為隨機(jī)字符串,下面是跳轉(zhuǎn): this.$router.push('/accountDetail/' + paramsAccount);
2. 可以讓全局的頁(yè)面都重載,這個(gè)比較狠冗余也多,慎重點(diǎn)用:
在App.vue下修改:
<template> <div id="app" class="app"> <transition :key="key"> <router-view class="router-view"></router-view> </transition> </div> </template> <script type="text/ecmascript-6"> // import {mapState} from 'vuex'; export default { name: 'app', computed: { key() { return this.$route.name !== undefined ? this.$route.name + new Date() : this.$route + new Date(); } } }; </script> // 就是在template下加一對(duì)標(biāo)簽<transition></transition> 加上key的屬性,不過(guò)官網(wǎng)說(shuō) 如果防止組件的復(fù)用就用這個(gè) 還是比較推薦這個(gè)方法的。
3. watch 來(lái)檢測(cè)路由變化。。缺點(diǎn)是,有時(shí)候會(huì)莫名出現(xiàn) 點(diǎn)兩次的情況,也就是你要跳轉(zhuǎn)會(huì)跳轉(zhuǎn)兩次。。有人說(shuō)是進(jìn)來(lái)會(huì)執(zhí)行一次跳轉(zhuǎn)回執(zhí)行一次,不過(guò)我覺(jué)得不太像。。希望有能人士指點(diǎn)。。:
watch: { '$route' (to, from) { this.httpGetUserInfo(); // 這是我ajax獲取用戶信息的方法 } } // 這樣每次路由執(zhí)行就會(huì)運(yùn)行這個(gè)方法,第一次打開不會(huì)運(yùn)行,你需要用created()方法來(lái)執(zhí)行下ajax方法。
補(bǔ)充知識(shí):vue頁(yè)面跳轉(zhuǎn)parmas傳參之刷新頁(yè)面參數(shù)丟失問(wèn)題解決方法
說(shuō)在前面:
今天遇到一個(gè)問(wèn)題,通過(guò)vue的parmas傳參,跳轉(zhuǎn)到相應(yīng)頁(yè)面后,F(xiàn)5刷新傳過(guò)來(lái)的參數(shù)就會(huì)消失。嘗試改成query傳參,但由于項(xiàng)目的路由不能帶參數(shù),不然刷新會(huì)找不到頁(yè)面。百度了很長(zhǎng)時(shí)間,嘗試了很多次,最后找到了一個(gè)方法,記一下,以備以后需要。(主要是實(shí)在搞不懂vuex 感覺(jué)還是local storage好理解一些。。。)
1.utils文件夾下新建localstorage.js文件
2.在需要保存值的文件里引入localstorage.js并通過(guò)db.save進(jìn)行保存數(shù)據(jù)
3.在跳轉(zhuǎn)到的頁(yè)面引入localstorage.js并通過(guò)db.get獲取數(shù)據(jù)
以上這篇解決VUE-Router 同一頁(yè)面第二次進(jìn)入不刷新的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue輕量級(jí)框架無(wú)法獲取到vue對(duì)象解決方法
這篇文章主要介紹了vue輕量級(jí)框架無(wú)法獲取到vue對(duì)象解決方法相關(guān)知識(shí)點(diǎn),有需要的讀者們跟著學(xué)習(xí)下。2019-05-05Vue頁(yè)面中實(shí)現(xiàn)平滑滾動(dòng)功能
這是一個(gè)實(shí)現(xiàn)平滑滾動(dòng)的函數(shù),可以讓頁(yè)面在滾動(dòng)到指定位置時(shí)產(chǎn)生緩動(dòng)效果,本文給大家介紹了如何在在Vue頁(yè)面中實(shí)現(xiàn)平滑滾動(dòng)功能,<BR>,文中詳細(xì)的代碼講解供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-12-12vue中使用vue-cli接入融云實(shí)現(xiàn)即時(shí)通信
這篇文章主要介紹了vue中使用vue-cli接入融云實(shí)現(xiàn)即時(shí)通信的相關(guān)資料,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04vue element el-form 多級(jí)嵌套驗(yàn)證的實(shí)現(xiàn)示例
本文主要介紹了vue element el-form 多級(jí)嵌套驗(yàn)證的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Vue項(xiàng)目打包壓縮的實(shí)現(xiàn)(讓頁(yè)面更快響應(yīng))
這篇文章主要介紹了Vue項(xiàng)目打包壓縮的實(shí)現(xiàn)(讓頁(yè)面更快響應(yīng)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03vue中使用cookies和crypto-js實(shí)現(xiàn)記住密碼和加密的方法
這篇文章給大家介紹一下關(guān)于vue中使用cookies和crypto-js如何實(shí)現(xiàn)密碼的加密與記住密碼,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你們有所幫助。2018-10-10elementui中el-input回車搜索實(shí)現(xiàn)示例
這篇文章主要介紹了elementui中el-input回車搜索實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法
這篇文章主要介紹了vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09