vuex相关:如果数据从服务器获取,并且经过运算才进入state,应该怎么写?

发布于 2022-09-11 20:44:58 字数 170 浏览 8 评论 0

如果从服务器获取了一个list,然后这个list又经过了本地js的加工,才成为能用的新list,然后我想赋值给vuex的state,应该怎么写?

是在App.vue的onLaunch写运算过程,然后赋值给state?

还是在index.vue里写?

还是写在mutations里?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

桃扇骨 2022-09-18 20:44:58
  1. 先定义一个state叫list吧.
  2. mutations里写一个mutation, 比如方法名为setApplist, 函数内给list赋值
  3. 组件内通过this.$store.$commit('setApplist', data)把data传给state上的list

具体放在index.vue还是app.vue的看你自己的业务需求才进行划分, 思路就是这样, 并不复杂哦

行至春深 2022-09-18 20:44:58

我想可以用计算属性,代码如下:

computed:{
    list(){
        let setData = data;//data就是处理过后的数据
        this.$store.state.setData = setData;
        return setData;
    }
}

也可以用监听。这是一种直接设置的办法,当然也可以用mutations,例如这么定义一个函数:

addImgList(state, userList) {
    state.imgList = userList
},

在你的组件中,你可以先引入:

...mapMutations(['addImgList']);

在某个事件或者方法内去调用:

//参数就是你新处理后的数据
this.addImgList(newData);

当然或许还有其他方式。

极致的悲 2022-09-18 20:44:58

感觉action好点,再action里面处理完异步数据之后再commit,防止后面还有本地不需要特殊处理的数据操作commit到状态里

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文