在開發網頁時,或多或少會用到 localStorage 的方法去存取資料,在取得物件時,需做一些 JSON 的轉換,便能將資料取出
1 2
| localStorage.setItem('data', JSON.stringify({ name: 'bobee' })); console.log(JSON.parse(localStorage.getItem('data')));
|
但每次都要這樣轉換其實有點麻煩,如果有很多地方都要使用這個方法,就必須寫一堆 JSON.stringify、JSON.parse,為了更方便使用,可以將方法包裝,供全站使用。
包裝 localStorage
新增 localStorage.js,自行注入 localStorage 方法
plugins/localStorage.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| export default ({ app }, inject) => { inject('localStorage', { set(key = '', val = {}) { localStorage.setItem(key, JSON.stringify(val)); }, get(key = '') { const obj = JSON.parse(localStorage.getItem(key)); if (!obj) return {}; return obj; }, remove(key = '') { localStorage.removeItem(key); }, removeAll() { localStorage.clear(); }, }); };
|
別忘了 nuxt.config.js 也要加上
1
| plugins: ["~/plugins/localStorage.js"],
|
調用 $localStorage
inject localStorage 的方法後,就可以在全站隨心所欲的使用 this.$localStorage 了!
1 2 3 4
| mounted() { this.$localStorage.set("data", { name: "bobee" }); console.log(this.$localStorage.get("data")); }
|
包裝 cookies
cookie 也是同包裝 localStorage 的作法,而 cookie 可以使用 Js-cookie 套件更方便操作
安裝 Js-cookie
新增 cookie.js,自行注入 cookies 方法
plugins/cookie.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import Cookies from 'js-cookie'; export default ({ app }, inject) => { inject('cookies', { set: (name, value = {}, expires = { expires: 365 }) => { Cookies.set(name, value, expires); }, get: (name) => { const val = Cookies.get(name); try { return JSON.parse(val); } catch (err) { return undefined; } }, remove: (name) => { Cookies.remove(name); }, removeAll: () => { const NodeList = Object.keys(Cookies.get()); NodeList.forEach((el) => Cookies.remove(el)); window.location.replace('/'); }, }); };
|
nuxt.config.js
1
| plugins: ["~/plugins/cookie.js"],
|
調用 $cookies
1 2 3 4
| mounted() { this.$cookies.set("bobee", { age: 11 }); console.log(this.$cookies.get("bobee")); }
|
筆記來源: 2021 Vue3 專業職人 | 進階篇
🚀線上課程分享
線上課程可以加速學習的時間,省去了不少看文件的時間XD,以下是我推薦的一些課程
想學習更多關於前後端的線上課程,可以參考看看。
Hahow 有各式各樣類型的課程,而且是無限次數觀看,對學生或上班族而言,不用擔心被時間綁住
如果你是初學者,非常推薦六角學院哦!
剛開始轉職也是上了六角的課,非常的淺顯易懂,最重要的是,隨時還有線上的助教幫你解決問題!
Udemy 裡的課程非常的多,品質普遍不錯,且價格都滿實惠的,CP值很高!
也是很多工程師推薦的線上課程網站。