欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vuex在vue项目中如何使用

程序员文章站 2022-07-09 12:45:34
...

在vue项目开发过程中都会使用到状态管理即为‘vuex’,现在抽了时间系统的将vuex系统的汇总了一下,希望对您有用。本文章只针对vuex使用,其他的不会太详细。接下来一起学习一下如何使用vuex状态管理:
在使用vuex之前需要创建一个vue的项目,当然前提是电脑里面必须有vue环境(使用webpack创建一个项目名称为vue-project项目)

vue init webpack vue-project //这里的'vue-project'就是项目的名称

项目创建后,然后安装vuex,使用命令:npm install vuex --save(安装vuex保存到本地),执行完成后启动项目。
项目启动成功后,然后我们在项目的src目录下新建一个目录store,在该目录下新建一个index.js文件,我们用来创建vuex实例,然后在该文件中引入vue和vuex,创建Vuex.Store实例保存到变量store中,最后使用export default导出store:
vuex在vue项目中如何使用
然后我们在main.js文件中引入该文件,在文件里面添加 import store from ‘./store’;,再在vue实例全局引入store对象;
vuex在vue项目中如何使用
然后我们就可以开始编写我们的vuex业务代码了,那么,我们的数据如何保存?在vuex中有几个属性:state\getters\action\mutations
下面介绍这几个属性。
State:
vuex中的数据源,我们需要保存的数据就保存在这里,可以在页面通过 this.$store.state来获取我们定义的数据;
vuex在vue项目中如何使用
页面中代码:
vuex在vue项目中如何使用
这时候我们页面上就得到了这个count值5:
vuex在vue项目中如何使用
Getters:
Getter相当于vue中的computed计算属性,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算,这里我们可以通过定义vuex的Getter来获取,Getters 可以用于监听、state中的值的变化,返回计算后的结果,这里我们修改Hello World.vue文件如下(我这里使用watch监听):
vuex在vue项目中如何使用
vuex在vue项目中如何使用
再修改index.js文件如下,其中getters中的getStateCount方法接收一个参数state,这个参数就是我们用来保存数据的那个对象;
vuex在vue项目中如何使用
然后我们在页面显示:
vuex在vue项目中如何使用
Mutations:
数据我们在页面是获取到了,但是如果我们需要修改count值怎么办?如果需要修改store中的值唯一的方法就是提交mutation来修改,我们现在Hello World.vue文件中添加两个按钮,一个加1,一个减1;这里我们点击按钮调用addFun(执行加的方法)和reductionFun(执行减法的方法),然后在里面直接提交mutations中的方法修改值(这里的代码和将要说的action的使用结合了):
vuex在vue项目中如何使用
vuex在vue项目中如何使用
修改index.js文件,添加mutations,在mutations中定义两个函数,用来对count加1和减1,这里定义的两个方法就是上面commit提交的两个方法如下:
vuex在vue项目中如何使用
页面上点击+、- 按钮操作数据:
点击 “+” “-”按钮
页面上的数据会跟着变化
vuex在vue项目中如何使用
Actions:
我们看到,当点击三次后值从2变成了-1;页面上的值是改变了;我们达到了修改store中状态值的目的,但是,官方并不介意我们这样直接去修改store里面的值,而是让我们去提交一个actions,在actions中提交mutation再去修改状态值,接下来我们修改index.js文件,先定义actions提交mutation的函数(代码展示和mutation中的代码已经结合同上)。
好了,我们这里已经实现了一个基本的vuex修改状态值的完整流程,如果我们需要指定加减的数值,那么我们直接传入dispatch中的第二个参数,然后在actions中的对应函数中接受参数在传递给mutations中的函数进行计算(代码如同mutations中的代码)。
mapState、mapGetters、mapActions
如果我们不喜欢使用这种在页面上使用如下这种很长的写法,那么我们可以使用mapState、mapGetters、mapActions就不会这么麻烦了;

this.$store.state.count

我们修改Hello World.vue文件如下:

vuex在vue项目中如何使用
vuex在vue项目中如何使用
此时我们在页面显示效果:
vuex在vue项目中如何使用

相关标签: vue中vuex