日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue刷新当前页面几种方式

發布時間:2024/9/27 vue 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue刷新当前页面几种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題:

最近些日子項目中突然碰到了一個需求,再完成編輯操作之后需要進行頁面刷新,通過實驗有如下幾種姿勢可以解決需求中的問題,下面進行簡單總結如下。

姿勢一:this.$router.go(0)
這個姿勢是利用了 history 中前進和后退的功能,傳入 0 刷新當前頁面。但是有一個問題就是頁面整個刷新過程中會白屏,嚴重影響用戶的體驗感,效果不好。

this.$router.go(0)

姿勢二:location.reload()

這個姿勢是利用了直接使用刷新當前頁面的方法。但是同樣存在有一個問題就是頁面整個刷新過程中會白屏,嚴重影響用戶的體驗感,效果也是不好,和姿勢一的現象一直,也不推薦使用。

location.reload()

姿勢三:provide / inject組合(推薦使用)

允許一個祖先組件向其所有子孫后代注入一個依賴,不論組件層次有多深,并在起上下游關系成立的時間里始終生效。
provide:選項應該是一個對象或返回一個對象的函數。該對象包含可注入其子孫的屬性。
inject:一個字符串數組,或一個對象,對象的 key 是本地的綁定名。
注意:provide和inject綁定并不是可響應的。這是刻意為之的。如果你傳入了一個可監聽的對象,那么其對象的屬性還是可響應的。

基本使用步驟如下:

步驟一:(App.vue)
通過 $nextTick(),協助實現。先把 移除,移除后再重新添加,達到刷新當前頁面的功能。是目前最合適的實現方式。

<template><div id="app"><router-view v-if="isRouterAlive"/></div> </template><script> export default {name: 'App',provide () {return{reload: this.reload}},data() {return {isRouterAlive: true}},methods:{reload(){this.isRouterAlive = falsethis.$nextTick(function(){this.isRouterAlive = true})}} } </script>

步驟二:(chapter.vue)

inject: ['reload'],

代碼結構

步驟三:(chapter.vue)
直接this.reload()調用,即可刷新當前頁面。

this.reload()// 需要刷新頁面

總結

以上是生活随笔為你收集整理的Vue刷新当前页面几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。