1 # 一、理解vuex
2 1.概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读写),也是一种组件间通信的方式,且适用于任意组件间通信。
3 2.Github地址:https://github.com/vuejs/vuex
4 # 二、什么时候使用Vuex
5 1.多个组件依赖同一状态
6 2.来自不同组件的行为需要变更同一状态
7 # 三、安装: npm i vuex@3
8 vuex@3 对应的 vue2
9 vuex@4 对应的 vue3
10 # 四、搭建vuex环境
11 // 该文件用于创建Vuex中最为核心的store,路劲(一般都放这里):src/store/index.js
12 // 引入Vuex
13 import Vue from 'vue'
14 import Vuex from 'vuex'
15
16 // 引入插件
17 Vue.use(Vuex);
18
19 // 准备actions,用于响应组件中的动作
20 const actions = {
21 jia(miniStore, value){
22 miniStore.commit('JIA', value)
23 },
24 jian(miniStore, value){
25 miniStore.commit('JIAN', value)
26 },
27 jiaOdd(miniStore, value){
28 if (miniStore.state.sum % 2){
29 miniStore.commit('JIA', value)
30 }
31 },
32 jiaWait(miniStore, value){
33 setTimeout(()=>{
34 miniStore.commit('JIA', value)
35 }, 500);
36 }
37 }
38 // 准备mutation,用于操作数据(state)
39 const mutations = {
40 JIA(context, value) {
41 context.sum += value;
42 },
43 JIAN(context, value) {
44 context.sum -= value;
45 },
46 }
47 // 准备state,用于存储数据
48 const state = {
49 sum: 0,
50 }
51
52
53 // 创建并暴露store
54 export default new Vuex.Store({
55 actions,
56 mutations,
57 state
58 });
59 # 组件部分代码
60 <template>
61 <div>
62 <h1>当前求和为:{{sum}}</h1>
63 <h1>将当前求和的值放大10倍:{{bigSum}}</h1>
64 <select v-model.number="n">
65 <option value="1">1</option>
66 <option value="2">2</option>
67 <option value="3">3</option>
68 </select>
69 <button @click="invrement">+</button>
70 <button @click="decrement">-</button>
71 <button @click="invrementOdd">当前求和为奇数再加</button>
72 <button @click="invrementWait">等一等再加</button>
73 </div>
74 </template>
75 <script>
76 import {mapState, mapGetters} from 'vuex'
77 export default {
78 name: 'Count',
79 data(){
80 return {
81 n: 1
82 }
83 },
84 computed:{
85 // sum(){
86 // return this.$store.state.sum;
87 // },
88 // bigSum(){
89 // return this.$store.getters.bigSum;
90 // },
91 // 借助mapState生成从state中来的计算数据
92 // ...mapState({sum: 'sum'}), // 代替上面的sum()
93 ...mapState(['sum']), // 数组写法
94 // 借助mapState生成从getters中来的计算数据
95 // ...mapGetters({bigSum: 'bigSum'}), // 代替上面的bigSum()
96 ...mapGetters(['bigSum']), // 数组写法
97 },
98 methods:{
99 invrement(){
100 // console.log('@', this);
101 this.$store.commit('JIA', this.n);
102 },
103 decrement(){
104 this.$store.commit('JIAN', this.n);
105 },
106 invrementOdd(){
107 this.$store.dispatch('jiaOdd', this.n);
108 },
109 invrementWait(){
110 this.$store.dispatch('jiaWait', this.n);
111 }
112 },
113 mounted(){
114
115 }
116 }
117 </script>
118 <style scoped>
119 button {
120 margin-left: 5px;
121 }
122 </style>
123
124
125 # 1.组件中渡漆vuex中的数据:$store.state.sum
126 # 2.组件中修改vuex中的数据: $store.dispatch('actions中的方法名', data) 或 $store.commit('mutations中的方法名', data)
127 # 备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,不写dispatch,直接写commit

Vue 状态管理之vuex && {mapState,mapGetters}的更多相关文章

  1. Vue状态管理之Vuex

    Vuex是专为Vue.js设计的状态管理模式.采用集中存储组件状态它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 1.首先让我们从一个vue的计数应用开始 ...

  2. vue - 状态管理器 Vuex

    状态管理 vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是data中需要共用的属性.

  3. 五、vue状态管理模式vuex

    一.vuex介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 即data中属性同时有一 ...

  4. Vue状态管理模式---Vuex

    1. Vuex是做什么的? 官方解释: Vuex 是一个专为Vue.js 应用程序开发的 状态管理模式 它采用 集中式存储管理 应用的所有组件的状态, 并以相应的规则保证状态以一种可预测的方式发生变化 ...

  5. Vue状态管理vuex

    前面的话 由于多个状态分散的跨越在许多组件和交互间各个角落,大型应用复杂度也经常逐渐增长.为了解决这个问题,Vue提供了vuex.本文将详细介绍Vue状态管理vuex 引入 当访问数据对象时,一个 V ...

  6. vuex(vue状态管理)

    vuex(vue状态管理) 1.先安装vuex npm install vuex --save   2.在项目的src目录下创建store目录,并且新建index.js文件,然后创建vuex实例,引入 ...

  7. vue状态管理器(用户登录简单应用)

    技术点:通过vue状态管理器,对已经登录的用户显示不同的页面: 一  vue之状态管理器应用 主要用来存储cookie信息 与vue-cookies一起使用 安装:npm install vue-co ...

  8. 理解Vue的状态管理模式Vuex

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 状态管理模式.集中式存储管理,一听就很高大 ...

  9. VueX(vue状态管理)简单小实例

    VueX:状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 核心模块:State. ...

随机推荐

  1. 2021夏季学期华清大学EE数算OJ1:算数问题

    第一次写博客,有点紧张... 也许格式也没有特别丑吧 先看原题( 此题做法众多,这里仅仅介绍蒟蒻的一种很复杂的思路(但最后还是喜提0ms的好成绩) 读完这道题,不难发现,此题不过是一个质因数分解+一堆 ...

  2. API Schema in kubernetes

    目录 什么是schema 数据库中的schema Kubernetes中的schema 通过示例了解schema 什么是schema schema一词起源于希腊语中的form或figure,但具体应该 ...

  3. GDKOI 2021 Day1 PJ 爆炸记

    早上睡到 7:10 分才想起今天有 GDKOI ,赶紧去买了一个面包赶去机房 发现隔壁的大奆都过来了.比赛时由于昨晚一直没睡好,打了两个小时的哈欠 T1 :暴力模拟 根据 \(r\) 和 \(c\) ...

  4. C# 使用SpecFlow创建BDD测试用例

    将自然语言编写的测试用例转换为可执行的测试,可以大大降低需求与开发之间的沟通成本,这是BDD(行为驱动开发)希望达到的效果.SpecFlow是.Net平台的BDD工具,可以帮助我们创建面向BDD的测试 ...

  5. 合宙AIR105(四): SPI, MAX7219 8x8LED驱动

    目录 合宙AIR105(一): Keil MDK开发环境, DAP-Link 烧录和调试 合宙AIR105(二): 时钟设置和延迟函数 合宙AIR105(三): 定时器, 定时器中断和PWM输出 合宙 ...

  6. 自己实现一个自定义React项目脚手架「ReactCli」

    前言 首先为什么想到自己实现一个React脚手架呢?是因为之前刚接触create-react-app时,觉得不太灵活.虽然文件目录很清晰,但是还是觉得不如VueCLI的可以自定义配置更加灵活.当然Re ...

  7. 利用kubernetes资源锁完成自己的HA应用

    Backgroud 前一章中,对kubernetes的选举原理进行了深度剖析,下面就通过一个example来实现一个,利用kubernetes提供的选举机制完成的高可用应用. 对于此章需要提前对一些概 ...

  8. 关于NAND FLASH解扣的认识

    NAND FLASH是现在非常重要的存储介质,根据出厂时厂家检测结果可分为原片(正片).白片和黑片. 所谓原片就是NAND FLASH生产厂商挑选出来的最好的晶圆,切割下来经过了各项测试之后封装成成品 ...

  9. 强化学习-学习笔记5 | AlphaGo

    本文不是论文阅读笔记,只是一个学习笔记,重在理解,在严谨程度上可能稍差. AlphaGo 论文指路: Mastering the game of Go with deep neural network ...

  10. StarGAN论文及代码理解

    StarGAN的引入是为了解决多领域间的转换问题的,之前的CycleGAN等只能解决两个领域之间的转换,那么对于含有C个领域转换而言,需要学习C*(C-1)个模型,但StarGAN仅需要学习一个,而且 ...