鍍金池/ 問答/HTML/ webpack熱替換丟失原有數(shù)據(jù),并且沒有觸發(fā)vue-rouer的鉤子

webpack熱替換丟失原有數(shù)據(jù),并且沒有觸發(fā)vue-rouer的鉤子

頁面中使用beforeRouteUpdatebeforeRouteEnter從服務(wù)端拿取數(shù)據(jù),每次更改代碼后頁面熱替換據(jù)就丟失了,并且沒有觸發(fā)ajax重新獲取數(shù)據(jù)。結(jié)果就是雖然有熱替換新刷新頁面才能顯示出數(shù)據(jù)。

vue-router的文檔里面有兩種獲取數(shù)據(jù)的方式,一個是created + watch,還有一個就是beforeRouteUpdatebeforeRouteEnter。前者在離開頁面的時候會多觸發(fā)一次數(shù)據(jù)更新,后再在熱替換的時候無法觸發(fā)數(shù)據(jù)更新。

請問有沒有什么好的辦法解決這個問題呢?

回答
編輯回答
落殤

線上環(huán)境里面不會熱更新吧.所以更新數(shù)據(jù)放在created里面就好,如果你要熱更新,可以把獲取數(shù)據(jù)放在mounted里面.不過線上可能會有閃屏.

2017年12月7日 00:23
編輯回答
醉淸風(fēng)

經(jīng)過排查,跟webpack.optimize.ModuleConcatenationPlugin插件有關(guān),去掉這個插件后,熱替換就能夠保留原有的狀態(tài)了。只在生產(chǎn)環(huán)境啟用這個插件可以解決該問題。

2018年3月9日 02:25