JavaScript自定義localStorage監(jiān)聽事件的解決方法
一、問題
在項目開發(fā)過程中,發(fā)現(xiàn)有很多時候進行localStorage.setItem()操作設置本地存儲后,頁面必須刷新才能夠獲取到存儲數(shù)據(jù),而有些時候本地緩存更新后,頁面無法通過再次刷新以獲取本地緩存,這就導致依賴本地緩存的數(shù)據(jù)無法進行更新。為了解決這個問題,就必須要用到自定義localStorage監(jiān)聽事件了
二、解決方法
下面以Vue3項目為例進行自定義localStorage監(jiān)聽事件方法闡述。
首先,在根目錄src目錄下新建utils文件夾,在utils文件夾下新增overwrite.js文件,文件內(nèi)容如下:
// overwrite.js
// 重寫setItem事件,當使用setItem的時候,觸發(fā),window.dispatchEvent派發(fā)事件
export 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)
}
}
接下來,在項目的入口文件main.js下引入自定義的重寫方法
1、引入文件的方法
import {dispatchEventStroage} from "./utils/overwrite"
2、全局使用即可。
dispatchEventStroage()
3、完整main.js引入的示例,如有不清楚的地方請參考下面的完整main.js示例:
import {createApp} from 'vue'
import './style.css'
import App from './App.vue'
import router from './router'
import {createPinia} from 'pinia'
import screenShort from "vue-web-screen-shot";
import {dispatchEventStroage} from "./utils/overwrite"
const app = createApp(App)
dispatchEventStroage()
app.use(router)
app.use(createPinia())
app.use(screenShort, {enableWebRtc: true})
app.mount('#app')
最后,在需要的地方使用即可,使用示例如下:
window.addEventListener('setItemEvent', (e) => {
console.log("監(jiān)聽到觸發(fā)了localStorage.setItem事件",e)
})
到此這篇關于JavaScript自定義localStorage監(jiān)聽事件的解決方法的文章就介紹到這了,更多相關JS自定義localStorage監(jiān)聽事件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于JavaScript實現(xiàn)全屏透明遮罩div層鎖屏效果
這篇文章主要介紹了基于JavaScript實現(xiàn)全屏透明遮罩div層鎖屏效果的相關資料,需要的朋友可以參考下2016-01-01
JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼
這篇文章主要介紹了JavaScript實現(xiàn)移動端頁面按手機屏幕分辨率自動縮放的最強代碼,通過阻止瀏覽器的默認行為各方面分析縮放的功能實現(xiàn),具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。2017-08-08
JavaScript設置彈出式獨立窗口頁面和window的方法舉例詳解
window.open是網(wǎng)頁中經(jīng)常遇到的彈出窗口代碼,不是網(wǎng)絡中比較反感的那類彈出代碼,下面這篇文章主要給大家介紹了關于JavaScript設置彈出式獨立窗口頁面和window的方法,需要的朋友可以參考下2024-01-01
js實現(xiàn)類似于add(1)(2)(3)調(diào)用方式的方法
這篇文章主要介紹了js實現(xiàn)類似于add(1)(2)(3)調(diào)用方式的方法,需要的朋友可以參考下2015-03-03
JavaScript中while循環(huán)的基礎使用教程
這篇文章主要給大家介紹了關于JavaScript中while循環(huán)的基礎使用教程,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JavaScript具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-08-08

