Vuex笔记(二)--- store里的分割

项目api下的store文件,把state、getters、mutations、actions分割放到不同的js文件里:
在这里插入图片描述

index.js

入口文件:使用vuex自带的调试工具

import Vue from 'vue'
import Vuex from 'vuex'
import * as actions from './actions'
import * as getters from './getters'
import state from './state'
import mutations from './mutations'
// Vuex 自带一个日志插件用于一般的调试
import createLogger from 'vuex/dist/logger'

Vue.use(Vuex)

const debug = process.env.NODE_ENV !== 'production'

export default new Vuex.Store({
  actions,
  getters,
  state,
  mutations,
  // 上线debug为false,线下调试debug为true可以使用。
  strict: debug,
  plugins: debug ? [createLogger()] : []
})

state.js

state:保存所需数据
在这里插入图片描述

getters.js

getters:需要映射的数据

箭头函数的简写state => state.singer,state里面的state.singer。
在这里插入图片描述
或者进行逻辑计算:
在这里插入图片描述

mutation-types.js

可以使用常量替代 Mutation 事件类型。
在这里插入图片描述

mutations.js

mutations:mutations必须是个同步函数。
所有的mutations是对它接收的回调函数都是两个参数:第一个是state,第二个是需要修改的对象名。函数里就是把这个对象名修改到state里面的对象。

把mutation-types常量import进来:

import * as types from './mutation-types'

这里singer是直接可以获取的数据:
在这里插入图片描述
正确完整代码:

const mutations = {
  [types.SET_SINGER](state, {singer}) {
    state.singer = singer
  }
}
export default mutations

第二个参数:对象 例子

actions.js

actions:做异步操作或对mutations进行封装。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值