在開發Web應用程序時,我們經常需要存儲一些用戶信息以及偏好設置。為了實現這個目標,通常會使用cookie。cookie是一種可以在用戶終端中存儲小量數據的技術。雖然cookie看起來很簡單,但是在vue中存儲中文cookie卻需要一些小技巧。
首先,讓我們快速回顧一下cookie是如何工作的。當用戶訪問某個網站并提供登錄憑證時(如用戶名和密碼),網站會向用戶終端發送一個cookie。這個cookie被終端存儲起來,并在隨后的請求中發送回服務器。服務器通過檢查cookie中存儲的內容,可以識別用戶并提供定制的Web應用程序。
//set cookie document.cookie = "username=張三"; //get cookie const cookies = document.cookie.split(';') let username = "" for (let i = 0; i< cookies.length; i++) { const [name, value] = cookies[i].trim().split('=') if (name === 'username') { username = value; } }
在vue中存儲中文cookie時,需要使用encodeURIComponent()方法對中文字符進行編碼。因為在cookie中,中文字符需要以URL編碼的方式進行傳輸。如果不進行編碼,會導致cookie存儲不正常。
//set cookie with encode const ChineseName = "李四" const encodedName = encodeURIComponent(ChineseName) document.cookie = "name=" + encodedName; //get cookie with decode const cookies = document.cookie.split(';') let name = "" for (let i = 0; i< cookies.length; i++) { const [key, value] = cookies[i].trim().split('=') if (key === 'name') { name = decodeURIComponent(value); } }
如果要存儲多個cookie,可以使用JSON.stringify()和JSON.parse()方法對對象進行處理。將對象字符串化后,再將其賦值到cookie中。取回cookie時,再將cookie字符串解析成對象。
//set multiple cookie with JSON const user = { name: "王五", age: 20, sex: "男" } const encodedUser = encodeURIComponent(JSON.stringify(user)) document.cookie = "userInfo=" + encodedUser; //get multiple cookie with JSON const cookies = document.cookie.split(';') let userInfo = {} for (let i = 0; i< cookies.length; i++) { const [key, value] = cookies[i].trim().split('=') if (key === 'userInfo') { userInfo = JSON.parse(decodeURIComponent(value)); } }
總之,存儲中文cookie在vue中需要注意編碼和解碼,同時也需要使用JSON方法對多個cookie進行處理。可以根據不同的場景進行選擇不同的方法。
上一篇vue cli實現原理
下一篇d3.json url