vuex與localstorage
區別:vuex數據存儲的內存,localstorage的數據存儲在本地
應用場景:vuex用於組件之間的傳值,localstorage用於不同頁面之間的傳值
永久性: 當刷新頁面時,vuex中的數據會丟失,locstorage不會。
解決vuex在頁面刷新后數據丟失的問題:
js代碼是運行在內存中的,代碼運行時多有的方法 變量都是保存在內存中的。刷新頁面時,以前申請的內存被釋放,重新加載腳本代碼,變量重新賦值,所以這些數據要存儲必須存儲在外部,例如:localstorage sessionstorage indexdb等,這些都是瀏覽器提供的API,可以將數據存儲在硬盤上,做持久化存儲。
h5提供了了,兩種在客戶端存儲數據的新方法: localstorage沒有時間期限,除非將它移除,sessionStorage即會話,當瀏覽器關閉時 會話結束,有時間限制;
cookie不適合大量數據的存儲,因為它們由每個服務器的請求來傳遞,這使得cookie速度很慢,而且效率不高
localstorage的作用域是限定在穩當級別的,同源的文檔共享同樣的localstorage數據,它們可以相互讀取對方的數據,甚至可以覆蓋對方的數據,非同源的文檔不能讀取或者覆蓋對方的數據。
需要注意的是vuex中的變量是相應式的,而sessionStorage不是,當改變vuex中的狀態,組件會檢測到改變,而sessionStorage不會,頁面需要刷新才可以看到變化;
讓vuex中的數據從sessionStorage中獲取,組件就可以響應式的變化
