JS組件封裝之監(jiān)聽localStorage的變化
前言:
由于在平時開發(fā)中,經(jīng)?;虿唤?jīng)常的用到一些功能或插件或函數(shù),回頭找起來還挺麻煩,我的想法是我直接將他們?nèi)康姆庋b成一個個的組件,做到“”拿來即用“”且該組件必須經(jīng)過測試確實(shí)可用才行,于是我新創(chuàng)建了一個vue項(xiàng)目,基于"vue": "^2.6.14",用它來測試組件是否正常,因?yàn)槲襳ue2/3 ,react hooks 之類的都在用,這里就以vue2作為基礎(chǔ)了,后續(xù)我的想法是多做幾個版本。
功能思路講述
這個是我封裝的函數(shù),作用是監(jiān)聽本地存儲localStorage的變化,當(dāng)設(shè)置localStorage時可以監(jiān)聽它的變化并將值保存到變量中,實(shí)現(xiàn)響應(yīng)式。
這個函數(shù)最核心之處其實(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實(shí)現(xiàn)購物車商品刪除功能
這篇文章主要介紹了微信小程序利用swiper+css實(shí)現(xiàn)購物車商品刪除功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03js replace 與replaceall實(shí)例用法詳解
這篇文章介紹了js replace 與replaceall實(shí)例用法詳解,有需要的朋友可以參考一下2013-08-08JS/HTML5游戲常用算法之路徑搜索算法 A*尋路算法完整實(shí)例
這篇文章主要介紹了JS/HTML5游戲常用算法之路徑搜索算法 A*尋路算法,結(jié)合完整實(shí)例形式分析了A*尋路算法的具體實(shí)現(xiàn)技巧,代碼備有詳盡的注釋便于理解,需要的朋友可以參考下2018-12-12JavaScript實(shí)現(xiàn)數(shù)值自動增加動畫
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)數(shù)值自動增加動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12JS實(shí)現(xiàn)從表格中動態(tài)刪除指定行的方法
這篇文章主要介紹了JS實(shí)現(xiàn)從表格中動態(tài)刪除指定行的方法,通過getElementById獲取指定行再使用deleteRow方法來實(shí)現(xiàn)刪除行的功能,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03利用canvas實(shí)現(xiàn)的加載動畫效果實(shí)例代碼
之前看到一個Android的加載效果不錯,一直想自己動手做一個,正好這段時間重溫了一個Canvas,所以就嘗試了一下。下面這篇文章主要給大家介紹了關(guān)于利用canvas實(shí)現(xiàn)加載效果的相關(guān)資料,需要的朋友可以參考下。2017-07-07JS中三目運(yùn)算符和if else的區(qū)別分析與示例
本文是通過示例詳細(xì)分析了JS中三目運(yùn)算符和if else的區(qū)別,是篇非常不錯的文章,這里推薦給大家。2014-11-11