JS組件封裝之監(jiān)聽localStorage的變化
前言:
由于在平時(shí)開發(fā)中,經(jīng)常或不經(jīng)常的用到一些功能或插件或函數(shù),回頭找起來還挺麻煩,我的想法是我直接將他們?nèi)康姆庋b成一個(gè)個(gè)的組件,做到“”拿來即用“”且該組件必須經(jīng)過測(cè)試確實(shí)可用才行,于是我新創(chuàng)建了一個(gè)vue項(xiàng)目,基于"vue": "^2.6.14",用它來測(cè)試組件是否正常,因?yàn)槲襳ue2/3 ,react hooks 之類的都在用,這里就以vue2作為基礎(chǔ)了,后續(xù)我的想法是多做幾個(gè)版本。
功能思路講述

這個(gè)是我封裝的函數(shù),作用是監(jiān)聽本地存儲(chǔ)localStorage的變化,當(dāng)設(shè)置localStorage時(shí)可以監(jiān)聽它的變化并將值保存到變量中,實(shí)現(xiàn)響應(yīng)式。
這個(gè)函數(shù)最核心之處其實(shí)是JavaScript的一個(gè)方法dispatchEvent,意思是派發(fā)事件,主動(dòng)的給DOM事件,具體的使用方法可以查看紅寶書,我記得他的參數(shù)有16個(gè),可以好好看看這個(gè),我之前拿它做無頭瀏覽器來著。
組件內(nèi)容:
找一個(gè).js文件放入以下代碼
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;完整的使用方法示例
目錄結(jié)構(gòu):

<template>
<div>
<h2>測(cè)試頁面</h2>
<h4>{{value}}</h4>
</div>
</template>
<script>
import dispatchEventStroage from '@/utils/tools'
export default {
data () {
return {
value:"000",
num:1
}
},
mounted () {
let _this = this
dispatchEventStroage("title")
window.addEventListener("setItemEvent", function (e) {
if (e.key === "title") {
console.log(e.newValue)
_this.value = e.newValue
}
})
setInterval(()=>{
this.num += 1
localStorage.setItem("title",this.num);
},1000)
}
}
</script>
<style>
</style>到此這篇關(guān)于監(jiān)聽localStorage的變化的文章就介紹到這了,更多相關(guān)監(jiān)聽localStorage的變化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一個(gè)超簡(jiǎn)單的JS拖拽實(shí)現(xiàn)代碼(兼容IE,Firefox)
網(wǎng)上找的一個(gè)超簡(jiǎn)單的JS拖拽,喜歡拖拽效果的朋友可以參考下。2010-04-04
HTML+CSS+JS實(shí)現(xiàn)的簡(jiǎn)單應(yīng)用小案例分享
這篇文章主要為大家分享四個(gè)用HTML+CSS+JS實(shí)現(xiàn)的簡(jiǎn)單應(yīng)用小案例,有:猜數(shù)字、表白墻、切換日夜間模式和待辦事項(xiàng),需要的可以參考一下2022-02-02
JavaScript中如何讓?x?==?1?&&?x?==?2?&&?x?==?3?等式成立
這篇文章主要介紹了JavaScript中如何讓x==1&&x==2&&x==3等式成立,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
用最通俗易懂的代碼幫助新手理解javascript閉包 推薦
我同樣也是個(gè)javascript新手,怎么說呢,先學(xué)的jquery,精通之后發(fā)現(xiàn)了javascript的重要性,再回過頭來學(xué)javascript面向?qū)ο缶幊?/div> 2012-03-03
js中settimeout方法加參數(shù)的使用實(shí)例
這篇文章主要介紹了js中settimeout方法加參數(shù)的使用,需要的朋友可以參考下2014-02-02
JS中的Replace方法使用經(jīng)驗(yàn)分享
本文給大家分享的是我們?cè)谑褂胘avascript中的replace方法的時(shí)候需要注意的一個(gè)事項(xiàng),我就是沒有注意到,才被這個(gè)bug煩了好久,這里記錄下來,有需要的小伙伴可以參考下。2015-05-05
詳解如何準(zhǔn)確判斷JavaScript中的數(shù)據(jù)類型
JavaScript中,我們經(jīng)常需要判斷數(shù)據(jù)類型以便于正確地處理數(shù)據(jù),本文將介紹JavaScript中的數(shù)據(jù)類型判斷技術(shù),包括typeof操作符、instanceof操作符、Object.prototype.toString方法以及ES6新增的一些數(shù)據(jù)類型判斷方法,需要的朋友可以參考下2023-08-08最新評(píng)論

