Vuex就是用来管理状态的;
Vuex使用Store对象,来保存和管理整个应用的状态。
Store对象,它包含以下的一些方法:
-state,存储状态的 ,(其实就是存放数据的地方,所有的数据都存放在这里)
-getters,它是用来或得state里面的数据的,其实就是get数据的
-mutations, 用来更新状态的一些逻辑写在他里面,
其实就是操作数据的一些js方法,写在它里面
简单的说,就是一些js方法,你要写在vue组件的methods里面,现在就是写在mutations里面了。虽然有一些js的逻辑在它里面,但是你不能直接操作mutations,必须要通过actions
<!—其实就相当于是一些函数的容器-- >
<!—你要是从容器的角度来看待某些东西,其实很简单–>
-actions,它是用来操作mutations的
<!—xxx.click 其实就是一个actions事件–>
a. 同步:
伪代码:xxx.click(store.commit);
b.异步:
伪代码:xxx.click(store.dispatch);
官方说法:
-state,驱动应用的数据源(所有状态保存在这)
-view,以声明的方式state映射到视图(改变状态,引起视图层变化)
-action,响应在view上的用户的输入导致的状态的变化(事件改变状态)
<!—现在可以确定–>
Vuex的核心就是store对象;
每个vue的应用,只能有一个store对象
对于vuex状态图的看法:
1、 从组件出发;
2、 组件(call)调用了actions,和后台去交互一些数据;
3、 Actions,dispatch(派发)mutations;
4、 Mutations去触发了状态state的改变;
5、 State去更新了components;
3.4.5,这三步加在一起,就是vuex
补充:
*数据流是单向的;
*组件能够调用actions
*action可以派发mutations;
*只有mutations可以改变state;
*state是响应式的,只要state更新,那么组件将同步更新;