我想在HTML5中存储JavaScript对象localStorage,但我的对象显然正在转换为字符串.
我可以使用存储和检索原始JavaScript类型和数组localStorage,但对象似乎不起作用.他们应该吗?
这是我的代码:
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
console.log('typeof testObject: ' + typeof testObject);
console.log('testObject properties:');
for (var prop in testObject) {
console.log(' ' + prop + ': ' + testObject[prop]);
}
// Put the object into storage
localStorage.setItem('testObject', testObject);
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('typeof retrievedObject: ' + typeof retrievedObject);
console.log('Value of retrievedObject: ' + retrievedObject);
Run Code Online (Sandbox Code Playgroud)
控制台输出是
typeof testObject: object
testObject properties:
one: 1 …Run Code Online (Sandbox Code Playgroud) Vue.js允许在元素上应用事件:
<div id="app">
<button @click="play()">Play</button>
</div>
Run Code Online (Sandbox Code Playgroud)
但是如何在window对象上应用事件?它不在DOM中.
例如:
<div id="app">
<div @mousedown="startDrag()" @mousemove="move($event)">Drag me</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在这个例子中,如何监听mousemove事件window?
我在 Vue js 项目中使用 localStorage 作为数据源。我可以读写,但找不到一种被动使用它的方法。我需要刷新才能看到我所做的任何更改。
我使用数据作为多个组件的道具,当我localStorage从组件写入时,我forceUpdate使用该updateDate方法在主 App.vue 文件上触发 a 。
强制更新在这里不起作用。有什么想法可以在不刷新页面的情况下完成此任务?
...............
data: function () {
return {
dataHasLoaded: false,
myData: '',
}
},
mounted() {
const localData = JSON.parse(localStorage.getItem('myData'));
const dataLength = Object.keys(localData).length > 0;
this.dataHasLoaded = dataLength;
this.myData = localData;
},
methods: {
updateData(checkData) {
this.$forceUpdate();
console.log('forceUpdate on App.vue')
},
},
...............
Run Code Online (Sandbox Code Playgroud) 我有一个nav组件,只需要在localStorage. 当该令牌从删除localStorage的nav组件需要注意的是变化和隐藏自身。
解决这个问题的最佳方法是什么?
我正在尝试从 localStorage加载(使用mounted())和保存(使用该方法)。watch: {...}
我试图保存到本地存储的两个变量是“类别”和“位置”。
我只是由于某种原因无法触发它。我从未使用 vue.js/vuex 这样做过。
我发现的所有示例都data: {}在“常规”组件中使用该对象。在我的示例中,我尝试加载并保存到状态变量。请帮忙。我已经粘贴了整个 vuexcreateStore对象(project/src/store/index.js):
import { createStore } from 'vuex'
export default createStore({
state: {
categories: [ "Food", "Bars", "Parks"],
locations: [],
},
mutations: {
addCategory(state, newCategory) {
state.categories.push(newCategory)
},
removeCategory(state, i) {
state.categories.splice(i, 1);
},
saveCategory(state, data) {
state.categories[data.item] = data.text
},
addLocation(state, data) {
state.locations.push(data)
},
deleteLocation(state, i) {
state.locations.splice(i, 1);
},
saveLocation(state, data) {
state.locations[data.index].categories = data.item
},
},
watch:{
categories(newCategories) { …Run Code Online (Sandbox Code Playgroud)