vuex 快速入门

1.是什么

Vuex 是一个 Vue 的 状态管理工具,状态就是数据。

大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。例如:购物车数据 个人信息数

2 .核心概念 - state 状态

State提供唯一的公共数据源,所有共享的数据都要统一放到Store中的State中存储。

打开项目中的store.js文件,在state对象中可以添加我们要共享的数据。

const store = new Vuex.Store({// state 状态, 即数据, 类似于vue组件中的data,// 区别:// 1.data 是组件自己的数据, // 2.state 中的数据整个vue项目的组件都能访问到state: {count: 101}
})

如何获得state里的共享数据

获取 store:
 1.Vue模板中获取 this.$store
 2.js文件中获取 import 导入 store


模板中:     {{ $store.state.xxx }}
组件逻辑中:  this.$store.state.xxx
JS模块中:   store.state.xxx

示例

这是模版中获取

<h1>state的数据 - {{ $store.state.count }}</h1>

组件逻辑 也就是 <script>

// 把state中数据,定义在组件内的计算属性中computed: {count () {return this.$store.state.count}}

js模块 也就是main.js文件等等

//main.jsimport store from "@/store"console.log(store.state.count)

 通过辅助函数 mapState获取 state中的数据

  需要导入 import { mapState } from 'vuex'

   采用数组的形式

mapState(['count'])  等价于

count () {
    return this.$store.state.count
}

最终写法是

 computed: {...mapState(['count'])}

这样的好处是不需要写 this.$store.state

只需要写 count 即可 其它同理

3 .核心概念 - mutations 状态

作用主要是用来修改共享数据的   所有的修改共享数据都应该在这里面写

const store  = new Vuex.Store({state: {count: 0},// 定义mutationsmutations: {}
})

格式说明

mutations: {// 方法里参数 第一个参数是当前store的state属性// payload 载荷 运输参数 调用mutaiions的时候 可以传递参数 传递载荷addCount (state) {state.count += 1}},

其它组件想要修改共享数据 最好使用

commit 里面的参数就是 mutations 里面的 函数名称

this.$store.commit('addCount')

当然因为它是函数所以也可以传参

注意:提交的参数只能是一个, 如果有多个参数要传, 可以传递一个对象

辅助函数- mapMutations

mapMutations和mapState很像,它把位于mutations中的方法提取了出来,我们可以将它导入

import  { mapMutations } from 'vuex'
methods: {...mapMutations(['addCount'])
}

上面代码的含义是将mutations的方法导入了methods中,等价于

methods: {// commit(方法名, 载荷参数)addCount () {this.$store.commit('addCount')}}

此时,就可以直接通过this.addCount调用了

4.使用步骤(快速入门)

2.1 首先要安装vuex

如果是vue2 就安装 vuex 3  vue3 就安装 vuex4   

cnpm install vuex

2.2 创建一个空仓库 并导入到main.js

state 里面存的是共享数据

import {createStore} from 'vuex';const store = createStore({state: {// 定义你的状态},mutations: {// 定义你的 mutations},actions: {// 定义你的 actions},getters: {// 定义你的 getters}});export default store;

import { createApp } from 'vue'
import { createRouter,createWebHistory } from 'vue-router'; // 导入 createRouter 和 createWebHistory
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import  store from '@/store/index.js'const router = createRouter({history: createWebHistory(),routes: [/* your routes */]});const app =createApp(App)app.use(router)
app.use(ElementPlus, { size: 'small', zIndex: 3000 })
app.use(store)
app.mount('#app')

2.3 

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

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

相关文章

搜索与图论:宽度优先搜索

搜索与图论&#xff1a;宽度优先搜索 题目描述参考代码 题目描述 输入样例 5 5 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0输出样例 8参考代码 #include <iostream> #include <algorithm> #include <cstring> using namespace std;const int N …

VsQt单元测试目录的管理方式

正常项目的文件管理方式 正常项目的目录&#xff0c;是由文件系统中实际的文件夹进行分类管理的。 但是如果单元测试用实际文件夹管理的话&#xff0c;会出现问题&#xff0c;就是被测类太多了&#xff0c;用文件系统管理的话&#xff0c;不太方面查看&#xff0c;如下图所示。…

contentType 与 dataType

contentType 与 dataType contentType contentType&#xff1a;发送的数据格式&#xff08;请求方发送给服务器的数据格式&#xff09;&#xff0c;这个内容会放在请求方的 请求头中 application/x-www-form-urlencoded 这个是默认的请求格式。 提交给后台的数据会按照 KV&am…

创新实训2024.06.06日志:部署web服务

1. 运行web项目前后端服务 首先我们要先在服务器上运行客户端以及服务端的应用程序。随后再考虑如何通过公网/局域网访问的问题。 如何启动服务在仓库对应分支下的Readme文件中已经有详细描述了。 1.1. 启动服务端 对于服务端&#xff0c;即&#xff08;要求你在服务端子项…

SCARA机器人中旋转花键的维护和保养方法!

作为精密传动元件的一种&#xff0c;旋转花键在工作过程中承受了较大的负荷。在自动化设备上运用广泛&#xff0c;如&#xff1a;水平多关节机械手臂&#xff08;SCARA&#xff09;、产业用机器人、自动装载机、雷射加工机、搬运装置、机械加工中心的ATC装置等&#xff0c;最适…

MySQL在某些情况下不使用索引

当然&#xff0c;以下是您提供的内容转换成Markdown格式&#xff1a; 数据量太小&#xff1a;当表中的数据量非常少时&#xff0c;全表扫描可能比使用索引查找更快&#xff0c;因为索引的额外维护和查找成本可能超过直接扫描表的成本。 索引选择性低&#xff1a;如果索引列的值…

如何在Windows 10和11上修复DISM错误87?这里提供办法

​在电脑上运行DISM命令时&#xff0c;是否收到“错误代码87”消息&#xff1f;这是一个非常常见的错误&#xff0c;你可以轻松地修复它。我们将向你展示在Windows 11或Windows 10计算机上解决此问题的多种方法。 确保键入正确的命令 运行DISM命令时出现错误代码87的最常见原…

js将元素滚动到可见区域

除了使用scrollIntoView方法之外&#xff0c;还可以使用scrollIntoViewIfNeeded方法作为兼容性更好的替代方法。scrollIntoViewIfNeeded方法在某些情况下会更加平滑地将元素滚动到可见区域&#xff0c;而不会强制滚动到视口的顶部或底部。它的兼容性也比scrollIntoView方法更好…

AI时代的多维探索

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;我们的生活正在经历一场深刻的变革。从智能家居到自动驾驶&#xff0c;从医疗诊断到金融投资&#xff0c;AI技术正逐渐渗透到社会的各个角落。为了更全面地了解AI时代的发展趋势&#xff0c;我们将通过十个具…

优雅谈大模型10:MoE

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

应对800G以太网挑战:数据中心迁移

在过去几年中&#xff0c;云基础设施和服务的大规模使用推动了对更多带宽、更快速度和更低延迟性能的需求。交换机和服务器技术的改进要求布线和架构随之调整。因此&#xff0c;800G以太网对数据中心迁移的需求&#xff0c;特别是对速率&#xff08;包括带宽、光纤密度和通道速…

进程和计划任务以及步骤

进程 进程和程序有关&#xff0c;把该文件放到内存里&#xff0c;进程是动态的&#xff0c;不同时刻的状态不一样 内存&#xff1a;放置正在运行的程序和所需数据的位置 程序启动 ——》将相关文件和数据放到内存里 ——》进程&#xff08;processes&#xff09; 进程相关命令 …

【Python】教你彻底认识Python中的Web开发

​​​​ 文章目录 一、Web开发的基本概念1. Web服务器2. 客户端-服务器模型3. HTTP协议4. 前端与后端 二、常用的Web开发框架1. Django1.1 安装Django1.2 创建Django项目1.3 定义模型1.4 定义视图1.5 定义URL路由1.6 模板 2. Flask2.1 安装Flask2.2 创建Flask应用2.3 模板2.4…

达梦8 并行查询

达梦数据库可以通过在查询语句加/* parallel */ HINT并行执行。下面以一个排序语句为例 我们通过一条监控语句查询排序区的使用情况。 最初没有查询结果&#xff08;no rows&#xff09; 伴随着语句insert /* parallel(4) */ into d select * from a order by 2执行&#xff…

WPS超级会员4年,2024年到手值得!

WPS超级会员4年&#xff0c;带来金山办公软件的全新体验&#xff01;作为正版软件&#xff0c;WPS不仅拥有海量的模板资源&#xff0c;还能轻松实现PDF转word、图片处理、PDF编辑文档修复等功能&#xff0c;让你的办公效率更上一层楼。 购买WPS超级会员4年&#xff0c;你将获得…

大模型日报2024-06-06

大模型日报 2024-06-06 大模型资讯 AI推理缺陷&#xff1a;大型语言模型的局限性 摘要: 研究表明&#xff0c;像ChatGPT这样的流行AI平台在推理测试中给出的答案不一致&#xff0c;并且在增加上下文信息后也没有改善。这揭示了当前大型语言模型在推理能力上的局限性。 Databric…

计算机组成结构—总线

目录 一、总线的基本概念 1.分散连接和总线连接 2.总线的特点和组成 二、总线的分类 1. 片内总线 2. 系统总线 3. 通信总线 三、总线结构 1. 单总线结构 2. 双总线结构 3. 三总线结构 四、总线的性能指标 五、总线标准 六、总线判优&#xff08;总线仲裁&#xf…

为什么Java中的main方法必须是public static void的?

当我们创建main方法时&#xff0c;首先都是public、都是static&#xff0c;返回值都是void&#xff0c;方法名都是main&#xff0c;入参都是一个字符串数组。 在以上的方法声明中&#xff0c;唯一可以改变的部分就是方法的参数名&#xff0c;我们可以吧args改成任意我们想要使…

【List,ArrayList与顺序表】

目录 1&#xff0c;什么是List 2&#xff0c;List的使用 3&#xff0c;线性表 4&#xff0c;顺序表 4.1 接口的实现 5&#xff0c; ArrayList简介 6&#xff0c;ArrayList的使用 6.1 ArrayList的构造方法 6.2 ArrayList的常见操作 6.3 ArrayList的遍历 7&#xff0c;…

解决CSDN 导入Markdown图片失效不显示问题

每次将MarkDown文件导入CSDN的时候&#xff0c;有些图片总是由于防盗链的问题导致图片加载不出来&#xff0c;还得手动再导一遍&#xff0c;极其不方便。所以我们能不能建立一个属于自己的图片服务器或者说在线图库呢&#xff0c;而且每次使用Typora插入图片的时候都会自动的上…