Local Storage (更准确地说是“Web Storage”)适合存储你希望进行持久化的较小数据集,比如用户偏好设置或表单数据。更大规模和更复杂的数据则适合存储在 IndexedDB 中。
<div id="app">
My name is <input v-model="name">
</div>
const app = new Vue({
el: '#app',
data: {
name: ''
},
mounted() {
if (localStorage.name) {
this.name = localStorage.name;
}
},
watch: {
name(newName) {
localStorage.name = newName;
}
}
});
为了将数据写入,我们侦听 name 值的变化,并将数据实时写入。
我们使用 mounted 方法从 localStorage 中加载数据。
将变化的值立即写入或许是不被推荐的;於是改良为多了一个可以运行 persist 方法的按钮,数据只会在点击按钮后才被持久化。
<div id="app">
<p>
My name is <input v-model="name">
and I am <input v-model="age"> years old.
</p>
<p>
<button @click="persist">Save</button>
</p>
</div>
const app = new Vue({
el: '#app',
data: {
name: '',
age: 0
},
mounted() {
if (localStorage.name) {
this.name = localStorage.name;
}
if (localStorage.age) {
this.age = localStorage.age;
}
},
methods: {
persist() {
localStorage.name = this.name;
localStorage.age = this.age;
console.log('now pretend I did more stuff...');
}
}
})
我们也可以在数据被存储之前,对数据进行验证或转换。ex:可以将日期一并存储进去来记录这些数据是何时被存储的。有了这些元数据,mounted 方法就可以通过逻辑判断来决定是否再次对数据进行存储。
从学校毕业到现在,我认为最重要的是能够自我规律的去学习自己想学的事物,藉由不同的活动来提升自己能力。...
前情提要 在看 context API 相关的文件时,发现了一篇 React repo 中的讨论,主...
牛室就真的是名副其实「传说中」的299了 这家牛室的位置就在昨天介绍的「北泽寿喜烧」正对面。 牛室大...
移除照片中的人物 教学原文参考:移除照片中的人物 这篇文章会介绍使用 GIMP 的仿制工具,将照片里...
MVC模式的架构元件被设计用来处理开发中的应用程序的不同方面。MVC设计模式的作用是将表现层与业务逻...