1. 程式人生 > 程式設計 >Vue基於localStorage儲存資訊程式碼例項

Vue基於localStorage儲存資訊程式碼例項

一 什麼是localStorage

對瀏覽器來說,使用 Web Storage 儲存鍵值對比儲存 Cookie 方式更直觀,而且容量更大,它包含兩種:localStorage 和 sessionStorage

sessionStorage(臨時儲存) :為每一個數據源維持一個儲存區域,在瀏覽器開啟期間存在,包括頁面重新載入

localStorage(長期儲存) :與 sessionStorage 一樣,但是瀏覽器關閉後,資料依然會一直存在

所以上次使用cookie的時候就遇到了一個坑,設定後馬上訪問session會獲取不到,蛋疼,還需要重新整理一下,原因是:

當我們首次訪問設定Cookie的頁面時,伺服器會把設定的Cookie值通過響應頭髮送過來,告訴瀏覽器將cookie儲存的本地相應資料夾中(注意:第一次訪問時本地還沒有儲存Cookie,所以此時獲取不到值);

當第二次訪問(或在進行cookie設定後,過期前所有的訪問)時,請求頭資訊你中都會把Cookie值攜帶。(百度到的,暫時還沒理解透徹,先搬過來).二 使用方法

注意:sessionStorage 和 localStorage 的用法基本一致,引用型別的值要轉換成JSON,所以這裡就只列舉localStorage

1 儲存

//物件
const info = { name: 'hou',age: 24,id: '001' };
//字串
const str="haha";
localStorage.setItem('hou',JSON.stringify(info));
localStorage.setItem('zheng',str);

2 獲取

var data1 = JSON.parse(localStorage.getItem('hou'));
var data2 = localStorage.getItem('zheng'); 

3 刪除

//刪除某個
localStorage.removeItem('hou');
//刪除所有
localStorage.clear();

4 監聽

Storage 發生變化(增加、更新、刪除)時的 觸發,同一個頁面發生的改變不會觸發,只會監聽同一域名下其他頁面改變 Storage
window.addEventListener('storage',function (e) {
  console.log('key',e.key); console.log('oldValue',e.oldValue);
  console.log('newValue',e.newValue); console.log('url',e.url);
})

5瀏覽器中檢視

Vue基於localStorage儲存資訊程式碼例項6

vue中實踐

根據我的需求來的一個預設記住上次選擇的,很簡單

新增資料的時候,下次新增預設記住我上次的選擇

所以,在新增或者提交的時候儲存值即可,

localStorage.setItem('projectId',me.workhourData.projectId+","+me.workhourData.projectManager);在開啟新建頁面的時候獲取一下就好了,只需要判斷非空就行

//記住上次選中的稽核人
      if(localStorage.length>0){
        var mydata = localStorage.getItem('projectId');
        if(mydata!=null){
          var arr3=mydata.split(",");
          if(arr3[0]==me.workhourData.projectId){
            me.workhourData.projectManager=arr3[1];
          }
        }
      }

7 注意點

  • localStorage有效期是永久的。一般的瀏覽器能儲存的是5MB左右。sessionStorage api與localStorage相同。
  • sessionStorage預設的有效期是瀏覽器的會話時間(也就是說標籤頁關閉後就消失了)。
  • localStorage作用域是協議、主機名、埠。(理論上,不人為的刪除,一直存在裝置中)
  • sessionStorage作用域是視窗、協議、主機名、埠。

知道了這些知識點後,你的問題就很好解決了。
localStorage是window上的。所以不需要寫this.localStorage,vue中如果寫this,是指vue例項。會報錯

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。