大家好,又见面了,我是你们的朋友全栈君。
index.js
store文件下的基本文件
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'
// 每次mutation 打印日志
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,
strict: debug,
plugins: debug ? [createLogger()] : []
})
复制代码
state.js
管理状态
const state = {
singer: {}
}
export default state
复制代码
mutations.js
更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)
import * as types from './mutation-type'
const mutations = {
[types.SET_SINGER](state, singer) {
state.singer = singer
}
}
export default mutations
复制代码
mutation-type.js
管理mutations的名字
// 定义一些常量
export const SET_SINGER = 'SET_SINGER'
复制代码
action.js
异步操作或对mutation进行封装会在此书写
复制代码
getters.js
对state进行映射,即为store的计算属性
/* 将数据提交到组件 */
export const singer = state => state.singer
复制代码
在组件中提交 Mutation修改数据
使用 mapMutations 辅助函数将组件中的 methods 映射为 store.commit 调用
import { mapMutations } from 'vuex'
复制代码
在组件中取数据
<script type="text/ecmascript-6">
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(['fullScreen', 'playList'])
}
}
</script>
复制代码
转载于:https://juejin.im/post/5b98b137e51d450e6b0da887
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/107289.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...