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

這個是我封裝的函數(shù),作用是監(jiān)聽本地存儲localStorage的變化,當(dāng)設(shè)置localStorage時可以監(jiān)聽它的變化并將值保存到變量中,實現(xiàn)響應(yīng)式。
這個函數(shù)最核心之處其實是JavaScript的一個方法dispatchEvent,意思是派發(fā)事件,主動的給DOM事件,具體的使用方法可以查看紅寶書,我記得他的參數(shù)有16個,可以好好看看這個,我之前拿它做無頭瀏覽器來著。
組件內(nèi)容:
找一個.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>測試頁面</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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序利用swiper+css實現(xiàn)購物車商品刪除功能
這篇文章主要介紹了微信小程序利用swiper+css實現(xiàn)購物車商品刪除功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
JS/HTML5游戲常用算法之路徑搜索算法 A*尋路算法完整實例
這篇文章主要介紹了JS/HTML5游戲常用算法之路徑搜索算法 A*尋路算法,結(jié)合完整實例形式分析了A*尋路算法的具體實現(xiàn)技巧,代碼備有詳盡的注釋便于理解,需要的朋友可以參考下2018-12-12
JavaScript實現(xiàn)數(shù)值自動增加動畫
這篇文章主要為大家詳細(xì)介紹了JavaScript實現(xiàn)數(shù)值自動增加動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12

