Vue.js 路由引數發生變化時使用 Object.assign 初始化 data
最近這一年都在用Vue.js
做專案,有時候路由引數發生改變時頁面不會過載,導致資料都是舊的。
場景如下:
當前 URL:http://localhost:8080/news?id=1&page=1
發生變化:http://localhost:8080/news?id=1&page=2
這個時候page
引數改變了,但是頁面內容沒有發生改變,這時候一般需要用到beforeRouterUpdate
可以參考文件
來重新請求一遍資料就可以了。
但是,如果我們有一些變數,如開啟關閉對話方塊。處於開啟狀態,但是我翻頁時並沒有關閉對話方塊。這個時候翻頁對話方塊也存在,並且對話方塊呼叫的資料是上一頁的,這個時候我們翻頁前需要關閉對話方塊,在beforeRouterUpdate
可以進行修改。
但是如果頁面複雜的時候,有大量變數要初始化的話,那麼beforeRouterUpdate
一大堆變數賦值,又臭又長難看,這個時候只需要用Object.assign(this.$data, this.$options.data())
就可以解決初始化的問題了。然後,再去請求資料