Vue Vuex的使用和原理 专门解决共享数据的问题

news2024/11/27 18:28:36

在这里插入图片描述

Vuex专门解决共享数据的问题

多组件共享时使用,如用户ID各组件需要根据ID发送请求获取数据,任意组件可以进行增删改,相当于全局变量

在这里插入图片描述

Vuex 工作流程

在这里插入图片描述
如果确定值参数可以不经过Actions 直接走
在这里插入图片描述

安装Vuex

vue2使用 vuex@3
vue3使用 vuex@4

npm i vuex@3

要求

> 一个两个组件 要求两个组件实现 加法运算,保存到const state = { sum: 0 }当中

配置Vuex文件

在src下面创建store/index.js(官方文档的写法)

在这里插入图片描述

store/index.js


import Vue from 'vue'
import Vuex from 'vuex'
//导入Vuex

Vue.use(Vuex)

const actions = {

    addSum(context, value) {
        //context 上下文里面有commit函数 value 是组件传过来的值
        context.commit('AddSum', value)
        //获取到了数据 操作数据
    },

    //获取数据 如发起请求等
}


const mutations = {


    AddSum(state, value) {
        state.sum += value
        //这样就完成了赋值
    }
    
    //操作数据
}

const state = { sum: 0 }
//保存数据


//暴露出去给别人使用
export default new Vuex.Store({
    actions, mutations, state

})

然后在导入到main.js

import store from './store/index'
//如果不写文件名默认找index 如果没有报错

new Vue({
  render: h => h(App), store,
  //放到vue身上
}).$mount('#app')

组件1写入数据

	<button @click="add"></button>
add()
    { 
        this.$store.dispatch('addSum',1)
    }
    

组件2读取State数据

 readData() { 

            console.log(this.$store.state.sum)
        }

如果没有什么业务逻辑可以不写dispatch直接 context.commit(‘AddSum’, value)


getters配置项 数据加工

类似于计算属性,如给计算器、结果*10 +10…等是一个配置项

const getters = {
    deal(state) { return state.sum * 10 }
    //让sum乘10
}
//暴露出去给别人使用
export default new Vuex.Store({
    actions, mutations, state, getters

})

获取数据

  console.log(this.$store.getters.deal)
  //获取加工后的数据

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务Service

一、服务概述 Service(服务)是Android四大组件之一&#xff0c;是能够在后台长时间执行操作并且不是供用户界面的应用程序组件。Senice可以与其他组件进行交互&#xff0c;一般由Activity启动&#xff0c;但是并不依赖于Activity。当Activity的生命周期结束时&#xff0c;Serv…

UNI-APP_ios自动适应底部安全区背景,修改安全区背景

自动适应&#xff08;推荐&#xff09; 将所有 iPhone X&#xff08;刘海屏) 底部安全区域背景颜色 自动适应&#xff0c;当前页面什么颜色会自动调整。 1.打开 manifest.json &#xff0c;打开源码视图 2.找到 app-plus 配置项&#xff0c;添加以下代码 "safearea&quo…

vue的message提示信息修改提示框所在页面位置高度

vue的message提示信息修改提示框所在页面位置高度&#xff0c;可以使用message的offset属性通过数值来改变提示框位置&#xff01; html部分代码 <div><el-button type"primary" click"showMessage" style"margin-left:40%;margin-top:1%&q…

Python多线程和代理请求示例

这是一个python多线程调用和代理提交的示例 可以用于负载均衡测试和高并发测试 import hashlib import json import random import sys import threading import time import requests as requests from requests.packages.urllib3.exceptions import InsecureRequestWarningr…

windows jar包文件默认打开方式设置

1、管理员权限打开“注册表编辑器”&#xff1b; 2、定位到计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts项下&#xff0c;找到.jar项&#xff0c;再选中UserChoice项&#xff0c;其中ProgId值为jarfile 3、定位到计算机\HKEY_CLAS…

Pixhawk2.4.8接口及引脚定义

pixhawk2.4.8实物图 pixhawk侧边信号线插口 遥控器接收机、电调信号线插在这里 pixhawk侧边功能口 Micro-USB接口用来烧录固件、SD卡中有飞行日志等信息 pixhawk主面板接口 主面板接口功能概览 主面板接口定义 参考博客&#xff1a; https://zhuanlan.zhihu.com/p/61106155…

分布式训练原理总结(DP、PP、TP 、ZeRO)

文章目录 一、分布式训练基础知识1.1 集合通信、集合通信库1.2 通信模式1.2.1 Parameter Server&#xff08;2014&#xff09;1.2.2 Ring-AllReduce&#xff08;2017&#xff09; 1.3 同步范式1.4 大模型训练的目标公式 二、数据并行2.1 DataParallel&#xff08;DP)2.2 Distri…

c++学习3——几个感悟

一些感悟 1 虚拟目录2 浏览器和微信的本质区别3 资源文件 1 虚拟目录 电脑文件中并没有这个目录&#xff0c;比如vs2019在编程时&#xff0c; c的头文件.h文件和源文件.cpp文件实际上在一个目录&#xff0c;但是在vs2019中前者显示在头文件文件夹中&#xff0c;后者显示在源文…

mybatis-plus技巧--动态表名-多语句-拼接sql--关于mybatis的mysql分页查询总数的优化思考

文章目录 动态表名xml表名填充表名拦截器每天按统计每次设置 多语句操作forEach动态拼接 参数构建java进行拼接sqlmysql分页查询总数count不要使用count&#xff08;常数&#xff09;&#xff0c;count&#xff08;列名&#xff09;代替count(*)自己计数 SQL_CALC_FOUND_ROWSxm…

左偏树学习笔记

定义 堆&#xff0c;是一棵树&#xff0c;且每个节点的键值都大于等于 / 小于其父亲的键值。 左偏树是一种可合并的堆&#xff0c;可以以 O ( log ⁡ n ) O(\log n) O(logn) 的复杂度实现合并。 性质 左偏树满足堆的性质。 我们设定一个值 dist \text{dist} dist&#xf…

学习笔记|配对设计卡方检验|配对及二分类变量|McNemar检验|规范表达|《小白爱上SPSS》课程:SPSS第十七讲 | 配对设计卡方检验怎么做?

目录 学习目的软件版本原始文档配对设计卡方检验一、实战案例读数据 二、统计策略三、SPSS操作四、结果解读第一&#xff0c;卡方检验结果第二&#xff0c;分析统计结果 五、规范报告1、规范表格2、规范文字 学习目的 SPSS第十七讲 | 配对设计卡方检验怎么做&#xff1f; 软件…

如何在嵌入式软件开发的过程中使用DevSecOps方法,提升开发效率与安全性

DevOps可以帮助软件开发和IT从僵化的瀑布式开发脱离出来&#xff0c;转为更灵活的敏捷开发&#xff0c;使开发团队能够更快地解决问题、降低代码复杂性并加快产品交付。 既然DevOps有这么多的好处&#xff0c;那么对于希望确保软件开发过程安全的开发团队来说&#xff0c;下一…

学习笔记三十四:Ingress和 Ingress Controller概述

Ingress和 Ingress Controller概述 回顾service四层负载在k8s中为什么要做负载均衡Service不足之处四层负载和七层负载的区别OSI七层模型&#xff1a; Ingress介绍Ingress Controller介绍Ingress-controller 作用Ingress和Ingress Controller总结使用Ingress Controller代理k8s…

学习笔记|多组率卡方检验和Fisher确切法|个案加权|规范表达|《小白爱上SPSS》课程:SPSS第十六讲 | 多组率卡方检验和Fisher确切法

目录 学习目的软件版本原始文档多组率卡方检验和Fisher确切法一、实战案例二、统计策略三、SPSS操作1、个案加权2、卡方检验 四、结果解读第一&#xff0c;分组统计描述结果第二&#xff0c;卡方检验。 五、规范报告1、规范表格2、规范文字 六、划重点 学习目的 SPSS第十六讲 …

java JUC并发编程 第十章 Synchronized与锁升级

系列文章目录 第一章 java JUC并发编程 Future: link 第二章 java JUC并发编程 多线程锁: link 第三章 java JUC并发编程 中断机制: link 第四章 java JUC并发编程 java内存模型JMM: link 第五章 java JUC并发编程 volatile与JMM: link 第六章 java JUC并发编程 CAS: link 第七…

vivado 报错之procedural assignment to a non-register result is not permitted“

文章目录 这个错误通常是由于尝试在非寄存器类型的对象上进行过程赋值所引起的。在 Verilog 中&#xff0c;当使用 always 块时&#xff0c;其中的赋值操作应该只用于寄存器类型的变量&#xff0c;比如 reg 类型。非寄存器类型的信号&#xff08;比如 wire&#xff09;不能在 a…

如何将苹果手机照片导出?教你3个导出照片的必备技巧!

照片是我们记录生活&#xff0c;以及留下美好瞬间的最佳方式之一。通过手机照片&#xff0c;我们可以随时随地回忆过去的点点滴滴&#xff0c;还能将其分享给朋友和家人。因此&#xff0c;照片对于大家来说具有不可替代的价值与意义。 为了防止手机照片丢失&#xff0c;部分小…

WPF布局控件之WrapPanel布局

前言&#xff1a;博主文章仅用于学习、研究和交流目的&#xff0c;不足和错误之处在所难免&#xff0c;希望大家能够批评指出&#xff0c;博主核实后马上更改。 概述&#xff1a; 后续排序按照从上至下或从右至左的顺序进行&#xff0c;具体取决于方向属性的值。WrapPanel 位…

beego模板解析报错

文章目录 前言解决beego解析问题总结 前言 网上搜索为模板解析路径问题&#xff0c;实际是beego解析vue打包后的index.html出现错误&#xff0c; 比如解决时排除了.go代码&#xff0c;发现没问题&#xff0c;运行beego打印,打开浏览器进入web时发现wen打不开&#xff0c;并在b…

支付宝本地生活团购服务商如何申请?两个方法教给你

支付开宝的本地生活来了&#xff01;按支付宝财大气粗的做法&#xff0c;它一旦要推什么项目&#xff0c;那自然会在前期疯狂洒钱&#xff0c;以求通过这种模式快速占领市场。 所以&#xff0c;这次支付宝要推本地生活项目&#xff0c;这一贯做法自然得跟上&#xff0c;只是这…