溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue項目中如何使用localStorage實現(xiàn)信息存儲

發(fā)布時間:2020-11-17 14:52:50 來源:億速云 閱讀:249 作者:Leah 欄目:開發(fā)技術

Vue項目中如何使用localStorage實現(xiàn)信息存儲?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一 什么是localStorage

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

sessionStorage(臨時存儲) :為每一個數(shù)據(jù)源維持一個存儲區(qū)域,在瀏覽器打開期間存在,包括頁面重新加載

localStorage(長期存儲) :與 sessionStorage 一樣,但是瀏覽器關閉后,數(shù)據(jù)依然會一直存在

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

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

當?shù)诙卧L問(或在進行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 監(jiān)聽

Storage 發(fā)生變化(增加、更新、刪除)時的 觸發(fā),同一個頁面發(fā)生的改變不會觸發(fā),只會監(jiān)聽同一域名下其他頁面改變 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實現(xiàn)信息存儲6

vue中實踐

根據(jù)我的需求來的一個默認記住上次選擇的,很簡單

添加數(shù)據(jù)的時候,下次添加默認記住我上次的選擇

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

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作用域是協(xié)議、主機名、端口。(理論上,不人為的刪除,一直存在設備中)
  • sessionStorage作用域是窗口、協(xié)議、主機名、端口。

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

關于Vue項目中如何使用localStorage實現(xiàn)信息存儲問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI