中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Vue中localStorage怎么使用和監聽localStorage值的變化

發布時間:2023-04-19 16:23:23 來源:億速云 閱讀:138 作者:iii 欄目:開發技術

今天小編給大家分享一下Vue中localStorage怎么使用和監聽localStorage值的變化的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    localStorage API

    要在 web 應用中使用 localStorage,首先要熟悉它提供的屬性和方法:

    • length:返回 localStorage 中的鍵值對的數目

    • setItem():增加一個鍵值對到 localStorage 中

    • getItem():從 localStorage 中查詢指定 key 的值

    • removeItem():從 localStorage 中刪除指定的鍵值對

    • clear():清空 localStorage 中所有鍵值對

    • key(): 傳入一個數字 n,用于返回指定第 n 個鍵的值

    setItem()

    從它的名字可以得知,此方法可以用來存儲數據到 localStorage 中。

    它接收兩個參數:一個 key 和一個 value。這個 key 稍后可用于從 localStorage 中檢索它的值。

    localStorage.setItem("code","12345")

    上述代碼中的 ‘code’ 就是 key,’Tylor’ 就是 12345。

    需要注意的是 localStorage 只能存儲字符串。要存儲數組或對象,需要先把它們轉成字符串。要實現這個操作,需要在調用 setItem() 之前先用 JSON.stringify() 方法轉換一下:

     let obj = {
          name: "qwer",
          code: "1234",
        };
     localStorage.setItem("msg", JSON.stringify(obj));

    注意:此方法執行時可能會拋出異常,例如存儲空間已滿時。建議使用 try...catch...語句處理異常以避免程序報錯。

    getItem()

    getItem() 方法可以用來訪問已存儲在瀏覽器 localStorage 中的數據。

    它只接收一個參數 key ,會把對應的 value 作為字符串返回。

    要檢索上面保存的 msg 數據,可以這樣做:

     localStorage.getItem("msg");

    調用之后會返回一個字符串:

    {"name":"qwer","code":"1234"}

    要在 JavaScript 中使用該值,你可能想把它轉為一個對象。這時可以用 JSON.parse() 方法把 JSON 字符串轉為 JavaScript 對象。

    JSON.parse(localStorage.getItem("msg"))

    removeItem()

    當傳入一個 key 時,removeItem() 方法會從 localStorage 中刪除指定的數據。如果沒有找到指定的 key,則什么都不做。

    localStorage.removeItem("msg")

    clear()

    調用此方法后,會清空當前域名下所有存儲在 localStorage 中的數據。調用時不需要傳入任何參數。

    localStorage.clear()

    key()

    key() 方法一般用于遍歷 localStorage 中所有的數據時,傳入一個以 0 開始計數的數字,它會返回對應的 key 的名字。

    let index = localStorage.key(index)

    在vue中實現監聽localstorage中某個鍵對應的值的變化

    在根目錄下創建一個名為utils的文件夾,在文件夾中創建一個tool.js文件

    //****將這段內容放在tool.js文件中****
    // 重寫setItem事件,當使用setItem的時候,觸發,window.dispatchEvent派發事件
    function dispatchEventStroage() {
        const signSetItem = localStorage.setItem
        localStorage.setItem = function(key, val) {
            let setEvent = new Event('setItemEvent')
            setEvent.key = key
            setEvent.newValue = val
            window.dispatchEvent(setEvent)
            signSetItem.apply(this, arguments)
        }
    }
    
    export default dispatchEventStroage;

    在main.js中引入使用

    import tool from "./utils/tool";
    Vue.use(tool);

    在需要監聽localstorage中數據變化的文件中加以下代碼

    //解決this指向問題,在window.addEventListener中this是指向window的。
    //需要將vue實例賦值給_this,這樣在window.addEventListener中通過_this可以為vue實例上data中的變量賦值
    let _this=this;
    //根據自己需要來監聽對應的key
    window.addEventListener("setItemEvent",function(e){
    	//e.key : 是值發生變化的key
    	//e.newValue : 是可以對應的新值
    	if(e.key==="formDocumnet"){
    		console.log(e.newValue);
    		_this.content=e.newValue;
    	}
    })

    以上就是“Vue中localStorage怎么使用和監聽localStorage值的變化”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

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

    AI

    赞皇县| 岑巩县| 山丹县| 仙游县| 淮北市| 吴江市| 南汇区| 阿坝| 兴隆县| 易门县| 安陆市| 顺义区| 宝鸡市| 临海市| 东兴市| 尚志市| 合山市| 泽普县| 齐齐哈尔市| 八宿县| 宣武区| 禹州市| 林州市| 武威市| 若尔盖县| 屏东市| 玛纳斯县| 凉山| 保山市| 宁乡县| 巩义市| 太仆寺旗| 禄劝| 新化县| 土默特左旗| 舒兰市| 抚顺市| 弥渡县| 兴安盟| 宣威市| 玉屏|