目录
1 安装
2 挂载
2.1 vue2写法
2.2 vue3写法
3 state
3.1 声明数据
3.2 使用数据
3.3 处理数据
4 mutations
4.1 基本使用
4.2 传递参数
4.3 mutations中不能写异步的代码
5 actions
5.1 基本使用
5.2 传递参数
6 getters
Vuex是做全局数据共享的,如果不使用vuex,每个组件的数据传来传去的很麻烦

我们下面通过vue3来使用vuex
1 安装


2 挂载
2.1 vue2写法



2.2 vue3写法

3 state
state是放数据用的
3.1 声明数据
声明的数据所有的组件都可以使用

3.2 使用数据

也可以用下面这种方式使用数据,下面这种方式感觉麻烦一些

3.3 处理数据
你可以这样搞

这样搞是可以生效的,点击按钮后something的值会+1

但是vuex不建议你这样搞,因为这样你会把函数定义的哪里都有,你改起来很麻烦。vuex建议你使用mutations
4 mutations
4.1 基本使用
mutations存放 操作state中的数据的函数,函数不能包含异步操作,我们做个例子
先在mutations中定义改变something的函数

然后在组件中使用

最后把组件在app中渲染

4.2 传递参数
定义

用

可以成功实现效果

用下面这种方法也可以在组件中使用mutations,相较于上面的方法我觉得麻烦了一些

4.3 mutations中不能写异步的代码
我们写一个看看


点击按钮过1s后,虽然页面上的值改变了,但是state中的值没有改变

如果你要执行异步操作,你需要使用action
5 actions
5.1 基本使用
action存放 操作state中的数据的函数的异步操作部分,action如果想操作state中的数据,只能配合mutations使用,我们做个例子
- 如果你不操作state中的数据就不用配合mutations,比如就单单发一个axios请求


在点击按钮的1s后,页面上的值发生了改变,state中的值也发生了改变

5.2 传递参数
像我们上面的例子就把 88 写死了,这样不是很好用,如果要通过action传递参数,我们可以这样写


1s后页面上的值改变了,state中的值也改变了

用下面这种方法也可以在组件中使用actions,相较于上面的方法感觉麻烦了些

6 getters
getters相当于是vuex中的计算属性,你可以在getters对state的值进行加工,我们做个例子
定义getters

使用getters

打开后是这样的

点击一下按钮getters的值也会发生相应的改变

也可以用下面这种方法在组件中使用getters,相较于上面的方法,下面的就麻烦了些
