不要在 mutation 加工 API 回来的资料

mutation
当作 state 的 setter 使用。
要符合 setter 的使命,挡掉错误格式。

在 GET 和 POST 格式差很多时。
可以在 mutation 不让资料失真的前提转格式。
只是这样的 case 我自己很少遇到。

极致版的 state
只储存 list 和 one 两个变数。在此可以储存一笔资料和一个列表的资料。

基本款的 getters
就是直送,将资料原封不动的直接送出来。

@/store/index.js

import actions from './actions';

export default {
  actions,
  state: {
    one: {},
    list: []
  },
  mutations: {
    user (state, payload) {
      if (!(payload instanceof Object)) {
        throw Error('user is not Object in mutation')
      }
      state.one = payload
    },
    users (state, payload) {
      if (!(payload instanceof Array)) {
        throw Error('users is not Array in mutation')
      }
      state.list = payload
    }
  },
  getters: {
    user (state) {
      return state.one;
    },
    users (state) {
      return state.list;
    }
  }
}

mutation 一定要用,为了配合 vue devtool 的 hook。

命名原则

mutation 的命名和 getters 一样。就可以从呼叫 dispatch('fetchUser') 知道里面有使用 commit('user') 之後可以从同名的 getters.user 拿到资料。

分档原则

只将 actions 分出去
一来会让它大多数的作用是 API Doc 的对照表。
二来是将 Module 本体保时资料 + getters + setters 的三个部份。


<<:  [Day 29] 使用ChromeDriver来做单元测试(二)

>>:  TypeScript 能手养成之旅 Day 13 特殊型别 - Never

TOGAF 的个 六个组件

[开放组] Open Group (http://www.opengroup.org/)架构框架 (...

Day23,替你的Gitlab pipeline 添加点搞事

正文 在前面介绍gitlab-ci的pipeline中我仅仅只用到了build stage作为con...

[Day 30] 完赛心得

前言 很开心能够确实每天发文,并且持续30天成功完赛! 虽然这些天的发文大多都是过去学习中累计下来的...

轻松小单元 - 常见问题

假日就是要轻松 这个篇章整理了技服中心里的问答,包括专区的常见问题、开办研讨会的问答等,还有实作时碰...

Docker:KVM管理介面(virt-manager)

快照原里 对於熟悉软件Hyperviser的读者来讲,相信快照(Snapshot)一定是常会使用到的...