actions 就是 Vuex 里「共用的 method」

有时候,需要 CRUD 以外的行为,後端有时会开专属的 API,有时候不会。
有时候在使用 API 时,前端也有一些「一定会一起执行的事」。

那麽,这些「杂项」就很适合写在 action 方便表现「系统的行为」

  • 系统可以登入
  • 系统可以登出
  • 系统可以上传档案

POST /login

request body

{
  user: '',
  password: ''
}

response 200

{
  token: ''
}

POST /file

request header

{
  'Content-Type': 'multipart/form-data'
}

request body

form-data

{
  file: (binary)
}

response 200

{
  data: '/file/:file_path'
}

这些行为有时候可以写在 acitons。

实作 vuex

在 action 可以直接定义 login, logout, uploadFile 的动作。

应该还有其它的用途,但是我一时之间想不到。

  async login({ commit }, payload) {
    const res = await backendAPI.POST('/login', payload)
    commit('setToken', res.token)
    cookies.set('token', res.token)
  },
  logout({ commit }) {
    commit('setToken', '')
    cookies.clear()
    router.push('/')
  },
  async uploadFile({ commit }, file) {
    const res = await backendAPI.formDataPOST(`/file`, { file })
    return res.data
  }

这些和 CRUD 不一样的是,API 发送结束,并不是只有更新资料的 commit 而已。有时还有一些其它的事情要做。

列举一些其它可能会有特别在 actions 出现的实作。不过如果这些逻辑和画面有关,就有可能会在 component 上实作,而不是 actions

  • logout 可能在 API 收到 403 时就要执行。
  • uploadFile 可能会配合其它的功能使用。
  • login 需要储存 cookie

明天来实作在一个 actions 里做多个个非同步行为。


<<:  予焦啦!实作基本排程

>>:  Day 17 - Network Analyzers

【22】正规化方法 L1 与 L2 Regularizers 的比较实验

Colab连结 正规化 (Regularizers) 是在 Loss Function 中,多加一项...

【验证模型】3-7 「今晚,我想来点⋯⋯」动手做的餐点选择器进化!(中集)

继昨天的渲染函式後,我们接下来要完成各自页面的功能。 而根据昨天的 Wireframe 来看,主画面...

Day 16 - SNMP、Banner Grabbing 与 Firewall Rules

出於书本 Chapter 8. Network Infrastructure SNMP 扫描 什麽是...

课堂笔记 - 物联网概论(4)

应用层 1.节能 智慧电网系统 自动将感测到家庭家电上的用电资料并上传到网路 电力公司才可以藉由智...

Day 3 - Playing with CSS

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...