vue子頁面控制父頁面刷新問題
vue子頁面控制父頁面刷新
父頁面
?//父組件調(diào)用子組件
<el-dialog :visible.sync="showDialog" width="65%">
? ? ? <version
? ? ? ? v-if="showDialog"
? ? ? ? :versionId="versionId"
? ? ? ? :currentVersion="currentVersion"
? ? ? ? :batchNo="batchNo"
? ? ? ? :showDialog="showDialog"
? ? ? ? :subjectList="subject"
? ? ? ? @on-load = "onLoad"
? ? ? ? @refresh-change="handleRefreshChange"http://調(diào)用方法
? ? ? ></version>
? ? </el-dialog>
methods:{
handleRefreshChange() {
? ? ? this.onLoad(this.page);//調(diào)用父組件的刷新方法
? ? },
}子頁面
//在需要點擊后刷新的位置添加上
this.$emit('refresh-change',true);vue刷新頁面的三種方式,并處理死循環(huán)
vue頁面刷新的辦法和處理頁面重復循環(huán)。先寫一下刷新頁面的方法,解決循環(huán)放在下邊。
1.直接使用刷新當前頁面
會有短暫白屏,體驗效果不好
location.reload();
2.通過路由傳入0,刷新當前頁面
忽悠短暫白屏,體驗效果不好
this.$router.go(0);
3.通過provide / inject組合
這個體驗感是最好的!
第一步:先在App.vue里 給 <router-view> 加一個 if 判斷,通過 $nextTick()實現(xiàn)先移除再添加達到刷新的功能。
<template>
? <div id="app">
? ? <router-view v-if="isRouterAlive"> </router-view>
? </div>
</template>
<script>
export default {
? name: "App",
? data() {
? ? return {
? ? ? isRouterAlive: true,
? ? };
? },
? provide() {
? ? return {
? ? ? reload: this.reload,
? ? };
? },
? methods: {
? ? reload() {
? ? ? this.isRouterAlive = false; //先關閉,
? ? ? this.$nextTick(function () {
? ? ? ? this.isRouterAlive = true; //再打開
? ? ? });
? ? },
? },
};
</script>第二步:在需要用到刷新的頁面接收 inject:['reload']
export default {
? ? inject:['reload'],?
? ? data () {
? ? ? ? return {}
? ? },第三步:在需要使用到刷新的地方直接調(diào)用
this.reload();
接下來,說下死循環(huán),這個是因為刷新頁面后,這段代碼又重新執(zhí)行。
想要解決有兩種方法
1.在想要刷新的地方使用點擊事件,這樣只有在點擊的時候會觸發(fā)這個刷新事件
<template>
? <div>
? ? <button @click="cli"></button>
? </div>
</template>
<script>
export default {
? name: "1",
? methods: {
? ? cli() {
? ? ? this.$router.go(0); //我這里隨便用一種刷新的方法
? ? },
? },
};
</script>
<style scoped>
</style>2.這種方法,使用定時器的辦法,不通過手動點擊,自動觸發(fā)
<template>
? <div></div>
</template>
<script>
export default {
? name: "1",
? mounted() {
? ? setInterval(() => {
? ? ? this.$router.go(0); //我這里隨便用一種刷新的方法
? ? }, 300000); //每5分鐘自動調(diào)用一次
? },
};
</script>
<style scoped>
</style>總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
vue el-table實現(xiàn)行內(nèi)編輯功能
這篇文章主要為大家詳細介紹了vue el-table實現(xiàn)行內(nèi)編輯功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-12-12
jdk1.8+vue elementui實現(xiàn)多級菜單功能
這篇文章主要介紹了jdk1.8+vue elementui實現(xiàn)多級菜單功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Vue實現(xiàn)當訪問的路由不存在時跳轉到404頁面的方法詳解
在 Vue3 中,可以使用 Vue Router 實現(xiàn)跳轉到 404 頁面,即當用戶訪問一個不存在路由時,系統(tǒng)會默認跳轉到 404 頁面,本文給大家介紹了一個簡單的實現(xiàn)方法,需要的朋友可以參考下2023-12-12
Vue MVVM模型與data及methods屬性超詳細講解
MVVM旨在利用WPF中的數(shù)據(jù)綁定函數(shù),通過從視圖層中幾乎刪除所有GUI代碼(代碼隱藏),更好地促進視圖層開發(fā)與模式其余部分的分離,這篇文章主要介紹了Vue MVVM模型與data及methods屬性2022-10-10

