Vuex3使用教程(待续)

news2024/11/25 16:53:35

Vuex定义

以下是Vue官网对于Vuex的定义:

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

从官方定义上看: Vuex提供了一个全部组件的状态(包含了数据和数据操作规则)的保存容器,由此组件的的状态的改变从组件抽离出来,保存到一个容器里面,由此极大提高代码复用能力组件间通信能力

Vuex架构

State

state是整个的核心,保存了全部组件的组件的数据及其规则的容器。

Vue Component

指的我们使用的vue的组件,数据通过render函数渲染展示到Vue components上。

Actions

这里提供了组件与数据交互的方法,我们通过dispatch,调用vuex的里面的数据和方法,并把业务提交到Mutations里面。

Mutations

通过此方法可以实现对Vuex的状态完成最终的修改
在这里插入图片描述

调用流程

1.调用组件,将请求转发给Actions
2.由Actions具体解析请求(考虑与后端交互)
3.将请求提交到到Mutations处理
4.修改State状态

Vuex的使用教程

安装

Vuex4默认支持Vue3,如果使用Vue2要使用Vuex3

npm install vuex@3

引入

这里的main.js引用Vuex,并把Vuex抽取到store.js里面

入口文件

在这里插入图片描述

Vuex的配置文件store.js

import Vue from 'vue'
import Vuex from 'vuex'
//创建核心的store文件
//响应组件的动作
Vue.use(Vuex)
//这里规定了Vuex和组件的交互
const actions={
    //context是包含了mutations的上下文状态,只有获取了上下文的状态才能提交修改
    addGames:function(context,value){
        console.log("接收的值",value)
        context.commit('adds',value)}
}
//操作数据的状态
const mutations ={
    adds(state,value){
        console.log("修改值")
        state.address=value

    },
    getSchool(state,value){
        console.log("修改值",value)
        state.shcool=value
        return state.shcool
    },
    addInfo(state,value){
        let nums = state.num
        let obj = {id:nums,name:value}
        state.datalist.push(obj)
        state.num=state.num+1}
}
//保存数据
const state = {
    address:"",
    //固定值
    shcool:"社会大学",
    datalist:[],
    num:0,
    do:{
        岗位:"编程",
        工资:0
    }

}


export default  new  Vuex.Store({
    actions:actions,
    mutations:mutations,
    state:state,
    getters
})

使用

组件与Vuex交互也非常简单,只要记住:

  1. this.$store.state保存了Vuex的所有的数据
  2. 以this.$store.dispatch(method,value)的格式把数据提交到Vuex 的Action里面
<template>
    <div  class="Address">
      <div>
        <button @click="changeName(Placevalue)">修改学校</button>
        <input placeholder="输入用例" v-model="Placevalue"   @keyup.enter="enterInfo">
      </div>
      
     <div>
      <button  @click="addStudents(addStudent)">添加学生</button>
      <input v-model="addStudent">
     </div>
</div>
 </template>
  
 <script>
import { mapMutations, mapState } from 'vuex';
 
  
 export default { 
     name:"Address",
     //import 引入的组件需要注入到对象中才能使用 
     props : ["listData","title"], 
     data ( ) { 
     //这里存放数据
      return { 
        Placevalue:'',
        addStudent:''
       
  
       } ; 
  }, 
   methods:{
    enterInfo(){
       console.log(this.$store.state.address)
        this.$store.dispatch('addGames',this.Placevalue);
        
        //console.log(this.$store.getters.addName)
     },
   // ...mapMutations({changeName:'getSchool',addStudents:'addInfo'})

   }
 </script> 

默认值
触发修改的效果
在这里插入图片描述

在这里插入图片描述

辅助函数

getters

为了方便实现对Vuex的数据的修改,vue提供了getters辅助函数,借助getters函数,可以方便对vuex的状态进行过滤修饰。

指定vuex的规范

在这里插入图片描述

设定

在这里插入图片描述
需要进行调用
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

mapState

mapState可以把vuex的state转变成为一个对象,置于计算函数里面,方便处理 。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

mapMutations

这个辅助函数是用于简化vuex的代码,借助mapMutations可以实现vuex的mutations的方法。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
初始化状态

在这里插入图片描述
添加学生后
在这里插入图片描述

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

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

相关文章

Java注释:单行、多行和文档注释

注释是对程序语言的说明&#xff0c;有助于开发者和用户之间的交流&#xff0c;方便理解程序。注释不是编程语句&#xff0c;因此被编译器忽略。 Java入门基础视频教程&#xff0c;java零基础自学就选黑马程序员Java入门教程&#xff08;含Java项目和Java真题&#xff09; Ja…

【Django】Django4.1.2使用xadmin避坑指南(二)

上一篇【Django】Django4.1.2使用xadmin避坑指南调完后&#xff0c;还是继续有问题&#xff0c;没事&#xff0c;咱们继续&#xff0c;必须啃下硬骨头~ 文章目录环境问题一&#xff1a;if not ContentType._meta.installed:这一句报错&#xff1a;AttributeError: Options obje…

《深度学习进阶 自然语言处理》第八章:Attention介绍

文章目录8.1 Attention结构8.1.1 seq2seq存在的问题8.1.2 编码器的改进8.1.3 解码器的改进8.2 Attention的应用8.3 总结之前文章链接&#xff1a; 开篇介绍&#xff1a;《深度学习进阶 自然语言处理》书籍介绍 第一章&#xff1a;《深度学习进阶 自然语言处理》第一章&#xf…

SSH连接WSL2踩坑记录与增加端口转换规则,实现外网与WSL2的连接

SSH连接WSL2踩坑记录 文章目录SSH连接WSL2踩坑记录1. 在WSL里的操作2. ssh连接3. 可能出现的错误4. 再配置端口转发到WSL1. 在WSL里的操作 1.1 重装openssh-server sudo remove openssh-server # 如果已经安装了&#xff0c;建设先卸载 sudo apt install openssh-server…

Ansys Lumerical | 行波 Mach-Zehnder 调制器仿真分析

前言 本示例描述了行波 Mach-Zehnder 调制器的完整多物理场&#xff08;电气、光学、射频&#xff09;仿真&#xff0c;最后在INTERCONNECT中进行了紧凑模型电路仿真。计算了相对相移、光学传输、传输线带宽和眼图等关键结果。 综述 此示例中5毫米长的Si波导由5毫米长的Al共面…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.24 SpringBoot 整合 RabbitMQ(topic 模式)

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.24 SpringBoot 整合 RabbitMQ(topic 模式)5.24.1 …

FL Studio2023水果编曲软件最新版安装教程

FL Studio中文版是知名的音乐制作软件&#xff0c;让你的计算机就像是全功能的录音室&#xff0c;软件包含13种虚拟音源&#xff0c;可同时录制64轨音频轨&#xff0c;FL Studio中文版拥有的漂亮的大混音盘&#xff0c;先进的创作工具&#xff0c;让你的音乐突破想象力的限制&a…

智能化油田建设规划

一、数字化油田-技术现状 数字化油田实现了设备的远程生产过程监控&#xff0c;使井场实现无人值守。所以目前的设备运行维护管理系统只能实现数据统计管理&#xff0c;并不能实现设备状态监控及远程维护及故障诊断。 1、数字化油田— 存在的问题 缺少设备状态在线监测系统&a…

第三章. 业务功能开发--用户登录安全退出

第三章. 业务功能开发--用户登录安全退出 1. 用户登录 需求&#xff1a; 用户在登录页面,输入用户名和密码,点击"登录"按钮或者回车,完成用户登录的功能.*用户名和密码不能为空*用户名或者密码错误,用户已过期,用户状态被锁定,ip受限 都不能登录成功*登录成功之后,所…

Android Jetpack之Lifecycle的使用及源码分析

Lifecycle生命周期感知型组件可执行操作来响应另一个组件&#xff08;如 Activity 和 Fragment&#xff09;的生命周期状态的变化。这些组件有助于您编写出更有条理且往往更精简的代码&#xff0c;此类代码更易于维护。 尤其是在Activity和Fragment在已经默认支持LifeCycle的情…

【第五部分 | JS WebAPI】3:DOM 节点操作

目录 | 节点操作 1-1 概述 2-1 获取父节点 3-1 获取子节点&#xff08;获取所有子对象 不推荐&#xff09; 3-2 获取子节点&#xff08;获取所有子【元素节点】&#xff09; 3-3 获取首尾子节点 4-1 获取兄弟节点 5-1 动态创建、添加节点 5-2 案例&#xff1a;评论区 …

性能测试_JMeter_connection timed out :connect

jmeter报错:failed:connection timed out :connect/java.net.BindException: Address already in use: connect java.net.BindException: Address already in use: connectat java.net.DualStackPlainSocketImpl.connect0(Native Method)at java.net.DualStackPlainSocketImpl…

Linux系统上安装软件

安装jdk&#xff0c;安装tomcat&#xff0c;安装Mysql 四种安装方式&#xff1a; 安装jdk 1.去这个网站上下载linux版本的jdk Java Archive Downloads - Java SE 8 2.在虚拟机中的服务器终端中输入ifconfig&#xff08;注意不是ipconfig&#xff0c;而是ifconfig…

智慧机场解决方案-最新全套文件

智慧机场解决方案-最新全套文件一、建设背景二、建设思路三、建设方案四、获取 - 智慧机场全套最新解决方案合集一、建设背景 中国处在机场持续大规模建设过程中&#xff0c;政府也有意愿建设机场作为城市名片&#xff0c;经济持续增长会带来机场的持续建设&#xff1b;我国机…

螺旋模型的优点与缺点

螺旋模型&#xff1a; 特点&#xff1a; 螺旋模型在“瀑布模型”的每一个开发阶段前引入一个非常严格的风险识别、风险分析和风险控制&#xff0c;它把软件项目分解成一个个小项目。每个小项目都标识一个或多个主要风险&#xff0c;直到所有的主要风险因素都被确定 螺旋模型强…

Copilot:AI自动写代码,人工智能究竟还能取代什么?

Copilot&#xff1a;AI自动写代码&#xff0c;人工智能究竟还能取代什么&#xff1f; 前言 在AI绘画掀起一阵热潮之后&#xff0c;AI写代码又逐渐进入了我们的视野&#xff0c;似乎这一步我们还没想到就迅速到来了&#xff0c;难道说AI在取代画家之后&#xff0c;还要取代程序…

引擎入门 | Unity UI简介–第1部分(7)

本期我们继续为大家进行Unity UI简介&#xff08;第一部分&#xff09;的后续教程 本篇内容 14.放置标题图像 15.添加开始按钮 16.定位按钮 文章末尾可免费获取教程源代码 本篇Unity UI简介&#xff08;第一部分&#xff09;篇幅较长&#xff0c;分为十篇&#xff0c;本篇…

sqli-labs/Less-48

欢迎界面还是以sort为注入参数 接下来进行注入类型的判断 首先输入一下内容 sortrand() 多尝试几次 发现界面会发生变化 所以这一关属于数字型注入 然后我们选择使用报错注入 尝试输入一下内容 sortupdatexml(1,if(11,concat(0x7e,database(),0x7e),1),1)-- 回显如下 呦…

网络层 408真题 大题详解

1、【2009】 第一问有两种分配可能性&#xff0c;要想到位 记住&#x1f6a9; 路由器到互联网的路由相当于默认路由0/0 即目的地址0.0.0.0 子网掩码0.0.0.0 2、【2015】 注意&#x1f6a9;DHCP服务器不能转发信息 要观察到本图网络拓扑是同一个网络&#xff0c;在同一个网络中…

Linux系统man帮助一文通-尚文网络xUP楠哥

~~全文共1453字&#xff0c;阅读需约5分钟。 进Q群11372462&#xff0c;领取专属报名福利&#xff0c;包含云计算学习路线图代表性实战训练大厂云计算面试题资料! Linux帮助手册的常见章节 man是Manual的缩写&#xff0c;用来查看系统中命令和配置的帮助信息。Linux本地系统上…