vue中怎么實(shí)現(xiàn)頁面刷新?下面本篇文章給大家介紹一下在vue中實(shí)現(xiàn)全頁面刷新和局部刷新的方法,希望對(duì)大家有所幫助!
一.全頁面刷新
1.修改 App.vue,代碼如下:
<template> <div id="app"> <router-view v-if="isRouterAlive" /> </div> </template> <script> export default { name: 'App', provide() { // 父組件中返回要傳給下級(jí)的數(shù)據(jù) return { reload: this.reload } }, data() { return { isRouterAlive: true } }, methods: { reload() { this.isRouterAlive = false this.$nextTick(function() { this.isRouterAlive = true }) } } } </script>
重點(diǎn)如下圖所示:
2.到需要刷新的頁面使用 inject 進(jìn)行導(dǎo)入并引用 reload:
3.在需要進(jìn)行調(diào)用的方法中調(diào)用 this.reload() 即可
二、局部刷新
1.定義一個(gè)變量 isReloadData,并將該變量綁定到需要刷新的標(biāo)簽上 :
2.定義局部刷新的方法 reloadPart:
3.在需要執(zhí)行局部刷新的方法中進(jìn)行調(diào)用
三、應(yīng)用場(chǎng)景
- 當(dāng)在頁面中動(dòng)態(tài)修改了某些數(shù)據(jù),或者是 props 帶過來的數(shù)據(jù),又或者是通過 funcation 動(dòng)態(tài)設(shè)置的屬性,可能在修改之后不會(huì)展示最新的數(shù)據(jù)。
- 當(dāng)頁面數(shù)據(jù)發(fā)生了變化,但是頁面渲染會(huì)出現(xiàn)bug,例如 el-table 組件在數(shù)據(jù)發(fā)生變化后,會(huì)出現(xiàn)一個(gè)空白區(qū)域。
此時(shí),全頁面刷新或者局部刷新就會(huì)派上用場(chǎng),下面截圖舉例本人遇到的第二種情況,已通過使用全頁面刷新及局部刷新解決:
1.默認(rèn)全選,頁面渲染正常:
2.勾選掉一個(gè)展示列,頁面渲染正常:
3.把勾選掉的展示列再勾選上,出現(xiàn)空白區(qū)域:
此時(shí),只需要在單選的方法中調(diào)用局部刷新的方法 this.reloadPart() 即可解決,同理,全選也是如此。
4.當(dāng)每次新增展示列時(shí),表格也會(huì)出現(xiàn)空白區(qū)域,此時(shí)我們只需要在新增記錄成功后調(diào)用全頁面刷新的方法 this.reload() 即可。
【