最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue的緩存方法示例詳解

 更新時(shí)間:2021年03月12日 10:23:33   作者:是li同學(xué)呀  
這篇文章主要給大家介紹了關(guān)于Vue緩存方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

最近新做了個(gè)需求“前端緩存”

需求背景:解決表單高頻率重復(fù)填報(bào)問(wèn)題,要求打開(kāi)頁(yè)面自動(dòng)填充上次錄入的數(shù)據(jù),數(shù)據(jù)存儲(chǔ)期限為一周(7天有效期)。
說(shuō)起緩存首先想到的則是 localstorage、sessionStorage

sessionStorage

也稱(chēng)會(huì)話(huà)緩存,當(dāng)用戶(hù)關(guān)閉瀏覽器窗口后,數(shù)據(jù)就會(huì)被刪除;

sessionStorage.setItem("key","value");//存儲(chǔ)
sessionStorage.getItems("key");//按可以進(jìn)行取值
sessionStorage.removeItems("key");//按key單個(gè)刪除
sessionStorage.clear();//刪除全部數(shù)據(jù)
sessionStorage.length;//獲取數(shù)據(jù)的數(shù)量
sessionStorage.valueOf();//獲取全部值

localstorage

儲(chǔ)存的數(shù)據(jù)沒(méi)有時(shí)間限制,只要不刪除,都會(huì)存在

localstorage.setItem("key","value");//保存數(shù)據(jù)
localstorage.getItem("key");//讀取數(shù)據(jù)
localstorage.removeItem("key",);//刪除單個(gè)數(shù)據(jù)
localstorage.clear();//刪除所有數(shù)據(jù)
localstorage.key(index);//得到某個(gè)索引的key
key和value都必須為字符串,web Storage的API只能操作字符串

由于sessionStorage瀏覽器關(guān)閉窗口數(shù)據(jù)會(huì)被清空,所以對(duì)我所要開(kāi)發(fā)的需求不適用。如果只考慮這兩種方案的話(huà),這么看來(lái)localstorage相對(duì)來(lái)說(shuō)會(huì)比較合適,但是如果使用localstorage存儲(chǔ)并且設(shè)置時(shí)效的話(huà)從代碼層面來(lái)看會(huì)比較麻煩。

localstorage具體實(shí)現(xiàn)思路

1. 存儲(chǔ)數(shù)據(jù)時(shí)加上時(shí)間戳

當(dāng)數(shù)據(jù)較大時(shí),可以利用localstorage,存數(shù)據(jù)時(shí)候?qū)懭胍粋€(gè)時(shí)間,獲取的時(shí)候再與當(dāng)前時(shí)間進(jìn)行比較

在項(xiàng)目開(kāi)發(fā)中,我們可以寫(xiě)一個(gè)公用的方法來(lái)進(jìn)行存儲(chǔ)的時(shí)候加上時(shí)間戳

  export function setLocalStorageAndTime (key, value) {
  window.localStorage.setItem(key, JSON.stringify({ data: value, time: new Date().getTime() }))
  }

項(xiàng)目中應(yīng)用

  有數(shù)據(jù)再進(jìn)行存儲(chǔ) setLocalStorageAndTime('XXX', {name: 'XXX'})

2. 獲取數(shù)據(jù)時(shí)與當(dāng)前時(shí)間進(jìn)行比較

export function getLocalStorageAndTime (key, exp = 86400000) {
 // 獲取數(shù)據(jù)
 let data = window.localStorage.getItem(key)
 if (!data) return null
 let dataObj = JSON.parse(data)
 // 與過(guò)期時(shí)間比較
 if (new Date().getTime() - dataObj.time > exp) {
  // 過(guò)期刪除返回null
  removeLocalStorage(key)
  console.log('信息已過(guò)期')
  return null
 } else {
  return dataObj.data
 }
}

程序員最大的特點(diǎn)就是懶,有插件就絕不會(huì)放過(guò),能CV就絕對(duì)不手敲。由于寫(xiě)起來(lái)太繁瑣,所以果斷放棄使用localstorage,在另尋更簡(jiǎn)單方便的方法。通過(guò)同事的引薦最終選擇了Vue.ls,那就來(lái)介紹介紹 Vue.ls吧。

Vue.ls

一個(gè)Vue封裝的本地儲(chǔ)存的方法。Vue插件,用于從Vue上下文中使用本地Storage,會(huì)話(huà)Storage和內(nèi)存Storage,簡(jiǎn)單易上手,Api說(shuō)明也是比較全面。

安裝

NPM

npm install vue-ls --save

Yarn

yarn add vue-ls

使用

Vue-ls Storage API
import Storage from 'vue-ls';
 
options = {
 namespace: 'vuejs__', // key鍵前綴
 name: 'ls', // 命名Vue變量.[ls]或this.[$ls],
 storage: 'local', // 存儲(chǔ)名稱(chēng): session, local, memory
};
 
Vue.use(Storage, options);
// 或 Vue.use(Storage);
 
new Vue({
  el: '#app',
  mounted: function() {
    Vue.ls.set('foo', 'boo');
    // 設(shè)置有效期
    Vue.ls.set('foo', 'boo', 60 * 60 * 1000); //有效1小時(shí)
    Vue.ls.get('foo');
    Vue.ls.get('boo', 10); // 如果沒(méi)有設(shè)置boo返回默認(rèn)值10 
    
    let callback = (val, oldVal, uri) => {
     console.log('localStorage change', val);
    } 
    
    Vue.ls.on('foo', callback) //偵查改變foo鍵并觸發(fā)回調(diào) 
    Vue.ls.off('foo', callback) //不偵查
    
    Vue.ls.remove('foo'); // 移除
  }
});

Global(全局)

Vue.ls

Context(上下文)

this.$ls

API 說(shuō)明

Vue.ls.get(name, def)

返回storage中 name值。在返回之前,內(nèi)部解析JSON中的值

def: 默認(rèn)null, 如果為設(shè)置則返回 name.
Vue.ls.set(name, value, expire)

在storage設(shè)置 name的 value.并將 value轉(zhuǎn)化為 JSON

expire: 默認(rèn)為 null, name有效時(shí)間以毫秒為單位

Vue.ls.remove(name)

從 storage中移除 name. 成功移除 true, 否則返回false.

Vue.ls.clear()

清除storage.

Vue.ls.on(name, callback)

持續(xù)監(jiān)聽(tīng) name在其他標(biāo)簽上的更改,更改時(shí)觸發(fā) callback, 傳遞以下參數(shù):

  • newValue: 當(dāng)前storage中 name, 從持久化的JSON中解析
  • oldValue: 舊的storage中 name, 從持久化的JSON中解析
  • url: 修改來(lái)自選項(xiàng)卡的URL

Vue.ls.off(name, callback)

刪除以前的偵聽(tīng)器 Vue.ls.on(name, callback)

實(shí)操

存儲(chǔ):鍵值對(duì)形式,最后一個(gè)參數(shù)為有效期

取值:參數(shù)為存進(jìn)去的鍵

查看:存儲(chǔ)的數(shù)據(jù)可在localstorage中查看

總結(jié)

localstorage(本地存儲(chǔ))則以文件的方式存儲(chǔ)在本地,永久保存;sessionstorage( 會(huì)話(huà)存儲(chǔ) ) ,臨時(shí)保存;Vue.ls是一個(gè)Vue封裝的本地儲(chǔ)存的方法,簡(jiǎn)單方便易上手。localStorage和sessionStorage只能存儲(chǔ)字符串類(lèi)型,對(duì)于復(fù)雜的對(duì)象可以使用ECMAScript提供的JSON對(duì)象的stringify和parse來(lái)處理。

到此這篇關(guān)于Vue的緩存方法的文章就介紹到這了,更多相關(guān)Vue緩存方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文掌握在Vue3中書(shū)寫(xiě)TSX的使用方法

    一文掌握在Vue3中書(shū)寫(xiě)TSX的使用方法

    但隨著vue3版本的到來(lái),對(duì)typescript的支持度越來(lái)越高,tsx語(yǔ)法也被大部分人越來(lái)越接收,所以很多項(xiàng)目都是搭配 Vue3 + TS 進(jìn)行的,這篇文章主要介紹了一文掌握在Vue3中書(shū)寫(xiě)TSX的方法,需要的朋友可以參考下
    2023-05-05
  • Vuex之module使用方法及場(chǎng)景說(shuō)明

    Vuex之module使用方法及場(chǎng)景說(shuō)明

    這篇文章主要介紹了Vuex之module使用方法及場(chǎng)景說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue+Ant?Design進(jìn)度條滑塊與input聯(lián)動(dòng)效果實(shí)現(xiàn)

    vue+Ant?Design進(jìn)度條滑塊與input聯(lián)動(dòng)效果實(shí)現(xiàn)

    最近接到這樣一個(gè)需求滑塊進(jìn)度與輸入框?yàn)橐恢?默認(rèn)值為80,最小不能小于30,最大為100,怎么實(shí)現(xiàn)這個(gè)聯(lián)動(dòng)效果呢,下面小編給大家分享下基于vue+Ant?Design進(jìn)度條滑塊與input聯(lián)動(dòng)效果的實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • vue實(shí)現(xiàn)跳轉(zhuǎn)接口push 轉(zhuǎn)場(chǎng)動(dòng)畫(huà)示例

    vue實(shí)現(xiàn)跳轉(zhuǎn)接口push 轉(zhuǎn)場(chǎng)動(dòng)畫(huà)示例

    今天小編就為大家分享一篇vue實(shí)現(xiàn)跳轉(zhuǎn)接口push 轉(zhuǎn)場(chǎng)動(dòng)畫(huà)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • vue?table表格中如何控制下拉框的顯示隱藏

    vue?table表格中如何控制下拉框的顯示隱藏

    這篇文章主要介紹了vue?table表格中如何控制下拉框的顯示隱藏問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue.js實(shí)現(xiàn)下載時(shí)暫?;謴?fù)下載

    Vue.js實(shí)現(xiàn)下載時(shí)暫?;謴?fù)下載

    本文主要介紹了Vue.js實(shí)現(xiàn)下載時(shí)暫停恢復(fù)下載,通過(guò)使用XMLHttpRequest對(duì)象來(lái)控制下載過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • 解決vue中this.$set()不更新問(wèn)題

    解決vue中this.$set()不更新問(wèn)題

    我在做一個(gè)附件刪除功能的時(shí)候發(fā)現(xiàn),明明打印出來(lái)附件已經(jīng)沒(méi)有數(shù)據(jù)了但是頁(yè)面就是不刷新, this.$set()不生效,所以本文小編給大家介紹了vue中this.$set()不更新的解決方法,需要的朋友可以參考下
    2023-11-11
  • Vue中的scoped和 elememt-plus的樣式修改方法

    Vue中的scoped和 elememt-plus的樣式修改方法

    Vue中的scoped屬性用于實(shí)現(xiàn)樣式隔離,確保組件間的樣式互不影響,通過(guò)在組件的style標(biāo)簽內(nèi)添加任何內(nèi)容,可以為組件生成一個(gè)唯一的哈希值,從而實(shí)現(xiàn)樣式的定位,本文通過(guò)實(shí)例代碼講解Vue中的scoped和 elememt-plus的樣式修改方法,感興趣的朋友一起看看吧
    2025-01-01
  • 基于el-table實(shí)現(xiàn)行內(nèi)增刪改功能

    基于el-table實(shí)現(xiàn)行內(nèi)增刪改功能

    這篇文章主要介紹了基于el-table實(shí)現(xiàn)行內(nèi)增刪改功能,用過(guò)通過(guò)操作按鈕點(diǎn)擊刪除或者編輯功能即可實(shí)現(xiàn)相應(yīng)的效果,下面小編給大家分享實(shí)例代碼感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Vue Element前端應(yīng)用開(kāi)發(fā)之菜單資源管理

    Vue Element前端應(yīng)用開(kāi)發(fā)之菜單資源管理

    在權(quán)限管理系統(tǒng)中,菜單也屬于權(quán)限控制的一個(gè)資源,屬于角色控制的一環(huán)。不同角色用戶(hù),登錄系統(tǒng)后,出現(xiàn)的系統(tǒng)菜單是不同的。菜單結(jié)合路由集合,實(shí)現(xiàn)可訪(fǎng)問(wèn)路由的過(guò)濾,也就實(shí)現(xiàn)了對(duì)應(yīng)角色菜單的展示和可訪(fǎng)問(wèn)路由的控制。
    2021-05-05

最新評(píng)論

清涧县| 右玉县| 阿坝| 南陵县| 丁青县| 文山县| 柯坪县| 平山县| 新宾| 高密市| 双辽市| 莎车县| 乐清市| 札达县| 老河口市| 潍坊市| 丰县| 大石桥市| 莒南县| 曲水县| 新疆| 阿拉善右旗| 阿克苏市| 金门县| 衡阳市| 德保县| 吴江市| 兴仁县| 苏尼特左旗| 韶山市| 安乡县| 双鸭山市| 达拉特旗| 新绛县| 水富县| 永德县| 清远市| 法库县| 社旗县| 榆中县| 老河口市|