Vue-53、Vue技术vuex使用

vuex 是什么

1、概念

专门在Vue 中实现集中式状态(数据)管理的一个Vue 插件,对vue 应用中多个组件的共享状态进行集中式的
管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。

2、什么使用vuex

1、多个组件依赖于同一状态
2、来自不同组件的行为需要变更同一状态

vuex 工作原理图

在这里插入图片描述

使用

1、安装vuex (注意vue2中,要使用vuex的3版本,vue3中,要使用vuex的4版本)

vue2 安装

npm i vuex@3 

vue3 安装

npm i vuex@4

2、在src新建vuex文件夹。在vuex文件下新进stors.js文件(store源码如下)

//改文件用于创建最为核心的store
//引入vue
import Vue from "vue";
//引入vuex
import Vuex from 'vuex';
//使用
Vue.use(Vuex);
//准备actions- 用于响应组件中的动作
const actions = {};
//准备mutations- 用于操作数据(state)
const mutations = {};
//准备state- 用于存储数据(state)
const state = {};
//创建store
const store = new Vuex.Store({actions,mutations,state
});
//暴露store
export default store;

3、在main.js中引入和使用

......
//引入vuex
import Vuex from 'vuex'
//引入store
import store from './vuex/store';
//使用
Vue.use(Vuex);......
new Vue({render: h => h(App),....store,.....}).$mount('#app');

4、store.js增加数据及相应处理处方法 完整代码如下

//改文件用于创建最为核心的store
//引入vue
import Vue from "vue";
//引入vuex
import Vuex from 'vuex';
//使用
Vue.use(Vuex);
//准备actions- 用于响应组件中的动作
const actions = {jia:function (context,value) {console.log('action中的jia被调用了',context,value);context.commit('JIA',value)},jian:function (context,value) {context.commit('JIAN',value);},SumOdd:function (context,value) {context.commit('SUMODD',value)},
};
//准备mutations- 用于操作数据(state)
const mutations = {JIA(state,value){console.log('mutation中的JIA被调用了',state,value);state.sum += value;},JIAN(state,value){state.sum -= value;},SUMODD(state,value){if (state.sum % 2){state.sum += value;}}
};
//准备state- 用于存储数据(state)
const state = {sum:0 //当前的和
};
//创建store
const store = new Vuex.Store({actions,mutations,state
});
//暴露store
export default store;

5、调用

<template><div ><h1>当前求和为:{{$store.state.sum}}</h1><select v-model.number="number"><option value="1">1</option><option value="2">2</option><option  value="3">3</option></select><br><button @click="addSum">+</button><button @click="reduceSum">-</button><button @click="addSumOdd">当前和为奇数再加</button><button @click="addSumWait">等等在加</button></div>
</template>
<script>export default {name: "Category",data(){return{number:1,}},methods:{addSum(){//this.$store.dispatch('jia',this.number)this.$store.commit('JIA',this.number)},reduceSum(){this.$store.dispatch('jian',this.number)},addSumOdd(){this.$store.dispatch('SumOdd',this.number)},addSumWait(){setTimeout(()=>{this.$store.dispatch('jia',this.number)},500)}},mounted() {console.log(this)}}
</script><style scoped>button{margin-left: 5px;}
</style>

6、getters的使用
在store.js 新增

//准备getters--用于将state中的数据进行加工
const getters = {bigSum(state){return state.sum*10}
};//创建store
const store = new Vuex.Store({......getters,......
});

调用

  <h1>当前求和放大10倍为:{{$store.getters.bigSum}}</h1>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/455200.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go_view同后端集成时的注意事项

goview是一个不错的可视化大屏配置工具;提供了丰富的功能可供调用。 官方地址和文档: https://gitee.com/dromara/go-view https://www.mtruning.club/guide/start/ 同nodejs集成可参考;https://gitee.com/qwdingyu/led (建议–后端集成有api功能,可直接配置sql)同dotne…

ChatGPT辅助编程,一次有益的尝试

如果大家想学习PCIe&#xff0c;搜索网上的信息&#xff0c;大概率会看到chinaaet上Felix的PCIe扫盲系列的博文 Felix-PCIe扫盲 每次看这个系列博文的时候&#xff0c;我都在想有没有什么方法可以把这个系列的博文都保存到一个pdf文件中&#xff0c;这样方便阅读。于是有了下…

Python进阶----在线翻译器(Python3的百度翻译爬虫)

目录 一、此处需要安装第三方库requests: 二、抓包分析及编写Python代码 1、打开百度翻译的官网进行抓包分析。 2、编写请求模块 3、输出我们想要的消息 三、所有代码如下&#xff1a; 一、此处需要安装第三方库requests: 在Pycharm平台终端或者命令提示符窗口中输入以下代…

代码随想录day18--二叉树的应用6

LeetCode530.二叉搜索树的最小绝对差值 题目描述&#xff1a; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,6,1,3] …

【紧耦合新范式】Think-on-Graph:解决大模型在医疗、法律、金融等垂直领域的幻觉

Think-on-Graph&#xff1a;解决大模型在医疗、法律、金融等垂直领域的幻觉 Think-on-Graph 原理ToG 算法步骤&#xff1a;想想再查&#xff0c;查查再想实验结果 论文&#xff1a;https://arxiv.org/abs/2307.07697 代码&#xff1a;https://github.com/IDEA-FinAI/ToG Think…

大数据企业应用场景分析

目录 一、企业分析 1.1 企业领域维度分析 1.2 技术服务型维度分析 1.3 细分领域维度分析 二、大数据应用场景 2.1 数据分析 2.2 智能推荐 2.3 产品/流程优化 2.4 异常监测 2.5 智能管理 2.6 人工智能和机器学习 三、总结 前言&#xff1a;想讲清楚大数据应用对企业…

问题排查利器 - 分布式 trace

在分布式系统开发中&#xff0c;系统间的调用往往会横跨多个应用之间的接口。负责的调用链路也导致了&#xff0c;当线上环境出现问题时&#xff0c;例如请求失败、延迟增加或错误发生&#xff0c;我们无法第一时间确定是哪个环节出了问题&#xff0c;这给故障排查和修复带来了…

CleanMyMacX4.14.6如何清理mac垃圾内存

一直以来&#xff0c;苹果电脑的运行流畅度都很好&#xff0c;但是垃圾内存多了磁盘空间慢慢变少&#xff0c;还是会造成卡顿的。这篇文章就告诉大家电脑如何清理垃圾内存&#xff0c;电脑如何清理磁盘空间。 一、电脑如何清理垃圾内存 垃圾内存指的是各种缓存文件和系统垃圾…

第二篇:MySQL安装与配置(基于小皮面板(phpstudy))

在第一篇中介绍了数据库的相关概念&#xff0c;了解到SQL是用来操作数据库管理系统的语言&#xff0c;因此要学习数据库技术&#xff0c;数据库管理系统的配备是必不可少的&#xff01; 并且出于流行性与实惠性的双考量而选择MySQL这款数据库管理系统软件 一&#xff0c;工具推…

RabbitMQ 安装

下载erlang语言&#xff1a; erlang语言 下载RabbitMQ rabbitmq 安装erlang 1.以管理员身份安装erlang 2.弹出框选择next 3.选择安装路径&#xff0c;亦可以安装在默认路径 4.接下来一路点击下一步&#xff0c;无需任何修改&#xff0c;直到 install安装为止&#xff…

[BUUCTF]-PWN:inndy_echo解析

查看保护 查看ida 有格式化字符串漏洞&#xff0c;可以修改printf的got表内地址为system&#xff0c;传参getshell 解法一&#xff1a; 在32位中可以使用fmtstr_payload直接修改&#xff0c;免去很多麻烦 完整exp&#xff1a; from pwn import* pprocess(./echo) premote(n…

私有化部署一个吃豆人小游戏

目录 效果 安装步骤 1.安装并启动httpd 2.下载代码 3.启动httpd 使用 效果 安装步骤 1.安装并启动httpd yum -y install httpd 2.下载代码 进入目录 cd /var/www/html/ 下载 git clone https://gitee.com/WangZhe168_admin/pacman-canvas.git 3.启动httpd syste…