提交 | 用户 | age
3ac5f2 1 /*
J 2  * @Author: 丘骏_jun
3  * @Date: 2019-11-21 10:59:17
4  * @Last Modified by: 丘骏_jun
5  * @Last Modified time: 2021-05-14 18:28:18
6  */
7 import Vue from 'vue'
8 import Vuex from 'vuex'
9 // import fn from '../utils/fn.js'
10 Vue.use(Vuex)
11
12 const state = {}
13
14
15 // 显式更改state,内部只允许同步,调用方式:$store.commit(key, value)
16 const mutations = {}
17
18 // 相当于computed,调用方式:store.getters.xxx
19 const getters = {}
20
21 // 允许异步,需通过store.dispath分发,调用store.commit更改state
22 const actions = {}
23
24 /**
25  * 首字母变大写
26  * @param {string} name
27  */
28 function getBigName(name){
29     return [name[0].toUpperCase(), ...name.substring(1)].join('')
30 }
31
32 /**
33  * 使用create,快捷创建简易字段
34  * 通用创建store字段,包含state,getters,mutations
35  * @param {string} key
36  * @param {*} default_value
37  * @param {function} mutation
38  */
39 function create (key, default_value, mutation) {
40     state[key] = default_value
41     mutations['set' + getBigName(key)] = mutation || ((state, value) => {state[key] = value})
42     getters['get' + getBigName(key)] = state => state[key]
43 }
44
45 // 用户信息
46 create('userData', {})
47 // danmuData: [], // 弹幕数据
48 // luckNum: 0, // 幸运值数据
49 // shareNum: 0, // 分享次数
50 // leftNum: 0, // 剩余抽奖次数
51
52 const store = new Vuex.Store({
53     state,
54     getters,
55     mutations,
56     actions,
57 })
58
59 export default store