最新消息: 新版網站上線了?。?!
  • 解決vue項目F5刷新mounted里的函數不執行問題

    項目背景

    在主文件index.vue中初始化頁面相關的操作,

    在mounted中放置用戶權限判斷并更新store中的權限值,當點擊相應組件時mounted可正常工作,

    但是在用戶手動刷新時mounted內的函數并未執行,導致相應組件未獲取到權限而顯示異常

    問題解決

    首先,這跟vue生命周期有關,圖就不貼了,直接說原因。

    當用戶f5刷新頁面時,整個頁面會重新去請求,js的狀態變量消失,但是el節點并未重新建立。

    因為,mounted是el被新創建的vm.$el替換,并掛載到實例上去之后調用的鉤子,此處el并未重新掛載,故該鉤子函數不會被調用。

    此處可以將用戶權限判斷的方法根據實際情況寫在beforeMount或created中

    常見的鉤子觸發事件

    beforeCreate

    在實例初始化之后,數據觀測(data observer) 和 event/watcher 事件配置之前被調用。數據和實例都不能訪問

    created

    實例已經創建完成之后被調用。在這一步,實例已完成以下的配置:數據觀測(data observer),屬性和方法的運算, watch/event 事件回調。然而,掛載階段還沒開始,$el 屬性目前不可見。

    數據可以訪問,實例不可訪問

    beforeMount

    在掛載開始之前被調用:相關的 render 函數首次被調用。

    DOM掛載前,數據可訪問,實例$el為虛擬DOM節點,不可訪問,數據還未插入DOM中

    mounted

    el 被新創建的 vm.el替換,并掛載到實例上去之后調用該鉤子。此時 el 替換,并掛載到實例上去之后調用該鉤子。此時el替換,并掛載到實例上去之后調用該鉤子。此時el為真實的DOM元素

    beforeUpdate

    數據更新時調用,發生在虛擬 DOM 重新渲染和打補丁之前。 你可以在這個鉤子中進一步地更改狀態,這不會觸發附加的重渲染過程。

    updated

    數據更新之后。

    由于數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調用該鉤子。

    當這個鉤子被調用時,組件 DOM 已經更新,所以你現在可以執行依賴于 DOM 的操作。然而在大多數情況下,你應該避免在此期間更改狀態,因為這可能會導致更新無限循環。

    該鉤子在服務器端渲染期間不被調用。

    beforeDestroy

    實例銷毀之前調用。此時實例還可以使用

    destroyed

    Vue 實例銷毀后調用。此時Vue實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷毀。 該鉤子在服務器端渲染期間不被調用。

    以上這篇解決vue項目F5刷新mounted里的函數不執行問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持谷谷點程序。

    .....

    轉載請注明:谷谷點程序 » 解決vue項目F5刷新mounted里的函數不執行問題

    平度胜利路按摩在什么地方多,平度做大活的足疗,平度职教中心女孩微信,平度找曼地方