首页 > 其他分享 >1、5分钟带你入门vuex(vuex状态管理)

1、5分钟带你入门vuex(vuex状态管理)

时间:2022-11-22 15:56:23浏览次数:42  
标签:vue 入门 分钟 修改 vuex 我们 store 页面

如果你之前使用过vue.js,你一定知道在vue中各个组件之间传值的痛苦,在vue中我们可以使用vuex来保存我们需要管理的状态值,值一旦被修改,所有引用该值的地方就会自动更新,那么接下来我们就来学习一下vuex是如何修改状态值的:

我们新建一个vue项目(这里由于我们是讲解vuex,所以对于vue项目的创建我们不会讲解太详细);在命令行输入 vue init webpack web(使用webpack创建一个项目名为web的项目);

项目创建后,然后安装vuex,使用命令:npm install vuex --save(安装vuex保存到本地),安装成功后你会看到这个界面:

然后我们执行npm run dev 启动项目,在浏览器输入:"localhost:8080";正常的话然后我们会看到项目的启动页,

看到这个界面说明项目启动成功,然后我们在项目的src目录下新建一个目录store,在该目录下新建一个index.js文件,我们用来创建vuex实例,然后在该文件中引入vue和vuex,创建Vuex.Store实例保存到变量store中,最后使用export default导出store:

然后我们在main.js文件中引入该文件,在文件里面添加 import store from ‘./store’;,再在vue实例全局引入store对象;

然后我们就可以开始编写我们的vuex业务代码了,那么,我们的数据如何保存?

State:

vuex中的数据源,我们需要保存的数据就保存在这里,可以在页面通过 this.$store.state来获取我们定义的数据;

这时候我们页面上就得到了这个count值1:

Getters:

Getter相当于vue中的computed计算属性,getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算,这里我们可以通过定义vuex的Getter来获取,Getters 可以用于监听、state中的值的变化,返回计算后的结果,这里我们修改Hello World.vue文件如下:

再修改index.js文件如下,其中getters中的getStateCount方法接收一个参数state,这个参数就是我们用来保存数据的那个对象;

然后我们在页面显示:

Mutations:

数据我们在页面是获取到了,但是如果我们需要修改count值怎么办?如果需要修改store中的值唯一的方法就是提交mutation来修改,我们现在Hello World.vue文件中添加两个按钮,一个加1,一个减1;这里我们点击按钮调用addFun(执行加的方法)和reductionFun(执行减法的方法),然后在里面直接提交mutations中的方法修改值:

修改index.js文件,添加mutations,在mutations中定义两个函数,用来对count加1和减1,这里定义的两个方法就是上面commit提交的两个方法如下:

页面上点击+、- 按钮操作数据:

点击 “+”按钮

执行成功,我们再连续点击三次减 “-” 按钮

ok!完美。

Actions:

我们看到,当点击三次后值从2变成了-1;页面上的值是改变了;我们达到了修改store中状态值的目的,但是,官方并不介意我们这样直接去修改store里面的值,而是让我们去提交一个actions,在actions中提交mutation再去修改状态值,接下来我们修改index.js文件,先定义actions提交mutation的函数:

然后我们去修改Hello World.vue文件:

这里我们把commit提交mutations修改为使用dispatch来提交actions;我们点击页面,效果是一样的。

好了,我们这里已经实现了一个基本的vuex修改状态值的完整流程,如果我们需要指定加减的数值,那么我们直接传入dispatch中的第二个参数,然后在actions中的对应函数中接受参数在传递给mutations中的函数进行计算:

这个时候我们再去点击“ - ”按钮就会发现不再是减1了,而是减去10了。

mapState、mapGetters、mapActions

如果我们不喜欢这种在页面上使用“this.store.dispatch('funName')”这种很长的写法,那么我们可以使用mapState、mapGetters、mapActions就不会这么麻烦了;

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

此时我们在页面使用count1调用:

正常显示,效果是一样的,我们就可以不再使用很长的写法来调用了。

标签:vue,入门,分钟,修改,vuex,我们,store,页面
From: https://www.cnblogs.com/Sultan-ST/p/16915351.html

相关文章

  • ansible的安装和入门(4)
    ansible的安装和入门ansible的安装epel源的安装yuminstallansible编译安装yum-yinstallpython-jinja2PyYAMLpython-paramikopython-babelpython-cry......
  • SLAM入门
    slam框架slam研究任务建图:估计环境定位:估计自身状态刚体运动描述:旋转矩阵——冗余旋转向量——不直观欧拉角——有奇异四元数——较好描述Eigen库Eigen以矩阵为基本数据单......
  • Vim简单入门
    值此五四运动100周年之际,写篇文章纪念一下。“要把所有的夜归还给星河,把所有的春光归还给疏疏篱落,把所有的慵慵沉迷与不前,归还给过去的我。明日之我,胸中有丘壑,立马振山河。......
  • RabbitMQ入门
    一、RabbitMQ简介安装1、什么是MQMQ全称为MessageQueue,即消息队列。“消息队列”是在消息的传输过程中保存消息的容器。它是典型的:生产者、消费者模型。生产者不断向消......
  • 2、Docker最新入门教程-Docker安装
    1.1Dockerforlinuxcentos7安装Docker1.1.1安装前必读在安装Docker之前,先说一下配置,我这里是Centos7Linux内核:官方建议3.10以上,3.8以上貌似也可。注意:本文的......
  • FFmpeg极简入门
    安装sudoapt-getinstallffmpeg1.观看视频或音频ffplayffplaydemo.mp42.查看视频详细信息ffprobeffprobe是用于查看文件格式的应用程序ffprobefasterRCNN1.mp43.转换视频格式f......
  • linux入门
    [Linux就该这么学第二版.pdf](https://www.yuque.com/attachments/yuque/0/2022/pdf/29649025/1658236286875-967f377b-1385-4c5c-af57-fc905c842d5d.pdf)##打包和压......
  • Spring Boot Admin 入门及配置
    什么是SpringBootAdmin?SpringBootAdmin是一个管理和监控SpringBoot应用的社区项目。创建SpringBootAdminServer要做到这一点,只需创建一个简单的SpringBo......
  • 十分钟学会油猴插件,自定义插件
    如果有前端基础的人,这个相对来说比较简单拿知乎来说,每次刷新都会弹出登录界面,教你五分钟自己写个油猴插件屏蔽掉登录窗口1.打开知乎,点击箭头,移动到页面,找见登......
  • 用php入门网络编程
    学习思路以下是我对学习网络编程的一个简单的学习思路,之后我将会按照这个计划去逐步学习网络编程相关的知识。step1.原生php实现TCPServer->原生php实现http协议->掌......