脚本宝典收集整理的这篇文章主要介绍了从零开始搭建vue-ssr系列之四:Vuex详解,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么要单独增加Vuex?
Vuex解决了什么问题?
如果不用Vuex,怎么做?
这样会带来什么问题?
是所有项目都用Vuex么?
从哪里开始?
什么例子?
...
mounted() {
Vue.axios.get('http://localhost:5000/data').then((response) => {
const list = response.data.data.liveWodList
this.newList = list
})
}
...
如果用Vuex呢?
commit
。这里这个操作,对应Vuex的核心概念之一:Mutations(变化)
!他的作用就是通知Vuex要搞事情了,比如删除数据、增加数据等,代码是这样的this.$store.commit('setData', list)
,这个有两个参数,第一个参数是要搞的事情,第二个参数是具体的数据。数据存哪了?
State(状态)
,就是所有需要变化的东西都存在我这。代码是这样的:function setData(state, data) {
state.list = data
}
怎么拿到数据?
State
,取也是从这里取。取数据就对应Vuex的核心概念之三Getters
,代码是这样的的:const getters = {
list: state => state.list
}
目录结构
store
|____modules
| |____list.js
|____mutation-types.js
|____store_index.js
这个目录结构有什么好处?
store/mutation-types.js
。这个文件的结构比较简单,代码如下:export const LIST = {
GET_DATA: 'getData',
ADD_DATA: 'addData'
}
LIST
,未来可能会多增加NEWS
/USER
等,也是一个模块,一个常量对象。modules/list.js
,代码如下:import {
LIST
} from '../mutation-types'
const state = {
list: []
}
const mutations = {
[LIST.GET_DATA](state, data) {
state.list = data
}
}
const getters = {
list: state => state.list
}
state/mutations/getters
,可以和我上面说的对比一下,现在看代码,应该很清晰了。注意:里面有很多ES6的语法,不明白的可以查一查。store/store-index.js
为入口文件,里面主要是引入各配置,供Vue使用。注意:这个文件的引入是在src/index.js
里面!流程图
好像还缺一个?
Action
,为什么没提这个Action,按我的理解,Action
这一层应该是在多个操作中有价值,比如有一个预约按钮,点击之后,会更新几个Component的状态。现实开发中,基本上都是点击按钮,触发一个事件,那增加Action
就会增加整个流程的链路,增加复杂度。Vue-SSR系列目录
从零开始搭建vue-ssr系列之二:纯client端渲染以及webpack2+vue2注意事项
从零开始搭建vue-ssr系列之五:开始第一个简单的server-render
以上是脚本宝典为你收集整理的从零开始搭建vue-ssr系列之四:Vuex详解全部内容,希望文章能够帮你解决从零开始搭建vue-ssr系列之四:Vuex详解所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。