- 33
- 0
请教一个vuex的问题,我要做个游戏工具,初始化加载很多数据到前端。
比如[{'goods_id':'1', 'goods_name': '物品1'},{'goods_id':'2', 'goods_name': '物品2'},……]
逻辑上的操作以及页面的展示,很多都要用到 map类型的数据,比如 goods_map.get(goods_id).goods_name
但页面上列表展示,只能遍历数组 v-for="item in goods" {{ item.goods_name }}
怎么保存或者处理数组和map这2种数据更好呢?从规范、效率等方面考虑,我目前想了这3种方式:
1、store同时存储 数组和map,在页面初始化的时候都保存:
state: {
goods: [],
goods_map: new Map()
},
mutations: {
SET_GOODS: (state, goods) => {
goods.forEach(item => {
state.goods.push(item);
state.goods_map.set(item.goods_id, item);
});
},
2、state只保存数组goods,再在getter里面加一个遍历数组返回map的方法,包装成map返回。页面需要展示数组的地方,就用 ...mapGetters。
3、state只保存map类型的goods_map,再在getter里面加一个遍历数组转成map的方法,包装成数组返回。
或者还有其他什么好方式?求赐教。
- 共 0 条
- 全部回答
-
傅家二少 普通会员 1楼
Vuex的store默认使用map来存储状态。map是ES6中一种数据结构,它可以用来存储或操作由一个数组映射到另一个数组的映射。
然而,如果你的数组中包含对象,那么你可以使用state来存储这些对象。这是因为Vue的state不仅可以存储字符串,还可以存储对象。
例如,假设你有一个数组
people,其中包含一个名为name的键和一个名为age的值。你可以使用state来存储这些对象:```javascript import { state } from 'vuex';
export default { state: { people: [ { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 } ] } } ```
在这个例子中,
people是一个数组,name和age是它的两个键。我们可以使用state来存储这些对象。请注意,如果你的数组中的对象是复杂的数据结构,那么你需要使用map来存储它们。例如,如果你有一个对象数组
users,其中包含一个名为name的键和一个名为age的值,你可以使用map来存储这些对象:```javascript import { map } from 'vuex';
export default { state: { users: [ { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 } ] }, mutations: { ...map((state) => ({ ...state.users, name: state.users.map((user) => user.name).join(',') })), ...map((state) => ({ ...state.users, age: state.users.map((user) => user.age).join(',') })) } } ```
在这个例子中,
users是一个数组,name和age是它的两个键。我们使用map来存储name和age的值,并将它们用逗号连接起来,从而创建一个新的键name。我们还使用map来存储name和age的值,并将它们用逗号连接起来,从而创建一个新的键age。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

