您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么在vue中實現主動刷新,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1.window.location.reload(),是原生JS提供的方法,this.$router.go(0):是vue路由里面的一種方法,這兩種方法都可以達到頁面刷新的目的,簡單粗暴,但是用戶體驗不好,相當于按F5刷新頁面,會有短暫的白屏,相當于頁面的重新載入。
2.通過路由跳轉的方法刷新,具體思路是點擊按鈕跳轉一個空白頁,然后再馬上跳回來:
當前頁面:
<template> <div> <el-button type="primary" class="btn" @click="btnaction">摁我刷新頁面</el-button> </div> </template> <script> export default{ data(){ return{ } }, mounted(){ }, methods:{ btnaction() { // location.reload() // this.$router.go(0) this.$router.replace({ path:'/empty', name:'empty' }) } } } </script>
空白頁面:
<template> <h2> 空頁面 </h2> </template> <script> export default{ data() { return{ } }, created(){ this.$router.replace({ path:'/', name:'father' }) } } </script>
當點擊按鈕時地址欄會有快速的地址切換過程。
3.控制<router-view></router-view>的顯示與否,在全局組件注冊一個方法,該方法控制router-view的顯示與否,在子組件調用即可:
APP.vue
<template> <div id="app"> <router-view v-if="isRouterAlive"></router-view> </div> </template> <script> export default { name: 'App', provide() { // 注冊一個方法 return { reload: this.reload } }, data() { return { isRouterAlive: true } }, methods: { reload() { this.isRouterAlive = false this.$nextTick(function() { this.isRouterAlive = true console.log('reload') }) } } } </script>
當前組件:
<template> <div> <el-button type="primary" class="btn" @click="btnaction">摁我刷新頁面</el-button> </div> </template> <script> export default{ inject: ['reload'], // 引入方法 data(){ return{ } }, components:{ }, mounted(){ }, methods:{ btnaction() { // location.reload() // this.$router.go(0) // this.$router.replace({ // path:'/empty', // name:'empty' // }) this.reload() // 調用方法 } } } </script>
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以創建可維護性和可測試性更強的代碼庫,Vue允許可以將一個網頁分割成可復用的組件,每個組件都包含屬于自己的HTML、CSS、JavaScript,以用來渲染網頁中相應的地方,所以越來越多的前端開發者使用vue。
看完上述內容,你們對怎么在vue中實現主動刷新有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。