vue组件通讯vuex状态管理例子

Vuex 是 Vue.js 的状态管理模式和库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。以下是一个简单的 Vuex 状态管理例子,展示如何在 Vue 组件中使用 Vuex 进行通讯。

首先,我们需要安装并引入 Vuex。如果你正在使用 Vue CLI 创建的项目,可以通过 npm 或 yarn 来安装:

bash

npm install vuex

# 或者

yarn add vuex

然后,我们可以在 Vue 应用中设置 Vuex:

store.js

javascript

import Vue from 'vue'

import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({

  state: {

    count: 0

  },

  mutations: {

    increment(state) {

      state.count++

    },

    decrement(state) {

      state.count--

    }

  },

  actions: {

    incrementAction({ commit }) {

      commit('increment')

    },

    decrementAction({ commit }) {

      commit('decrement')

    }

  },

  modules: {

    // 可以在这里添加其他模块

  }

})

接下来,在 Vue 应用的主入口文件(通常是 main.js 或 main.ts)中引入并使用 Vuex store:

main.js

javascript

import Vue from 'vue'

import App from './App.vue'

import store from './store'

new Vue({

  store,

  render: h => h(App),

}).$mount('#app')

现在,我们可以在 Vue 组件中使用 Vuex:

Counter.vue

vue

<template>

  <div>

    <p>Count: {{ count }}</p>

    <button @click="increment">Increment</button>

    <button @click="decrement">Decrement</button>

  </div>

</template>

<script>

export default {

  computed: {

    count() {

      return this.$store.state.count

    }

  },

  methods: {

    increment() {

      this.$store.commit('increment')

      // 或者使用 action

      // this.$store.dispatch('incrementAction')

    },

    decrement() {

      this.$store.commit('decrement')

      // 或者使用 action

      // this.$store.dispatch('decrementAction')

    }

  }

}

</script>

在上面的 Counter.vue 组件中,我们使用了计算属性 count 来从 Vuex store 中获取 count 的值。我们还定义了两个方法 increment 和 decrement,它们分别通过调用 Vuex store 中的 commit 方法来触发 mutations 中的 increment 和 decrement 函数。

你也可以选择使用 actions 而不是直接调用 mutations,因为 actions 允许你包含任意异步操作。在上面的例子中,我已经注释了使用 actions 的代码,你可以取消注释来查看如何使用它们。

这样,我们就实现了一个简单的 Vuex 状态管理例子,在 Vue 组件之间共享了状态 count。

 

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

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

相关文章

Rohm公司参展欧洲PCI盛会

​德国历史悠久的文化名城纽伦堡&#xff0c;即将迎来一场科技盛宴——欧洲PCI展览会。在这个为期三天的盛会中&#xff08;6月11日至13日&#xff09;&#xff0c;Rohm公司将以璀璨之姿&#xff0c;特别聚焦宽带隙&#xff08;WBG&#xff09;设备的璀璨光芒。 此次&#xff0…

气密检测中泄漏率的质量流量与体积流量的转换

对于R-134a等制冷剂&#xff0c;泄漏率通常表示为质量流量&#xff08;每年的逸出质量&#xff09;而不是体积流量&#xff08;特定时间段内给定压力下的逸出质量&#xff09;。因此&#xff0c;通过制冷剂的年泄漏量来定义泄漏级别&#xff0c;常用的单位为g/a。以某款车型为例…

嵌入式linux系统中NFS文件系统挂载详细实现

大家好,今天主要给大家分享一下,如何利用linux系统实现NFS文件系统挂载的方式与实现。 第一:linux-NFS挂载的目的 1、掌握 Ubuntu 系统 NFS 文件共享服务的安装及配置 2. 掌握嵌入式 Linux 系统通过 NFS 共享服务和 X86 宿主机进行数据共享,文件共享的方法。 …

多线程-线程池

为什么要使用线程池 在Java中使用线程池的主要原因有以下几点&#xff1a; 提高性能&#xff1a;使用线程池可以减少线程的创建和销毁过程的开销。线程的创建和销毁是比较昂贵的操作&#xff0c;如果每次需要执行任务时都创建一个新线程&#xff0c;会造成系统资源的浪费。而线…

sysbench安装(在线离线)

简介 sysbench是一个多线程基准测试工具&#xff0c;它支持硬件&#xff08;CPU、内存、I/O&#xff09;、数据库基准压测等2种测试手段&#xff0c;用于评估系统的基本性能。本篇文章主要介绍sysbench在线和离线2种安装方法&#xff0c;并将离线编译时发生的异常记录到FAQ&…

Filebeat进阶指南:核心架构与功能组件的深度剖析

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《洞察之眼&#xff1a;ELK监控与可视化》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是ELK 2、FileBeat在ELK中的角色 二、Fil…

触摸屏是输入设备还是输出设备?

从功能上讲&#xff0c;触摸屏理应属于输入设备&#xff0c;之所以有很多用户会误会它是输出设备&#xff0c;是因为将其与“触摸显示屏”搞混了&#xff0c;以手机屏幕为例&#xff0c;它并不是单层屏幕&#xff0c;而是有多个不同功能和作用组成的集成屏&#xff0c;这类带有…

c++大作业 调整字幕的时间

作业及其需求 有时候人们能够下载一些感兴趣的视频但是发现并没有字幕,到字幕网站上查找到字幕文件,但是发现时间进度上不能完美配合,一个视频数据的例子来源于链接: BBC.巴塔哥尼亚:地球秘密乐园 https://www.aliyundrive.com/s/LmF2sgrQzMu/folder/612af030c6fa4bf4b7c…

HCIP的学习(24)

第七章&#xff0c;VLAN—虚拟局域网 ​ 通过在交换机上部署VLAN技术&#xff0c;将一个规模较大的广播域在逻辑上划分成若干个不同的、规模较小的广播域。 ​ IEEE 802.1Q标准----虚拟桥接局域网标准----Dot1Q标准 标签协议标识符&#xff1a;0x8011&#xff08;代表数据帧是8…

前端 JS 经典:浏览器中 ESModule 的工作原理

前言&#xff1a;在开发中&#xff0c;我们经常写出如下代码。这就是 ES 模块化。那浏览器是如何运行的&#xff0c;它的运作机制到底是怎么样的呢。 在 index.html 导入 main.js <script src"./main.js" type"module"></script> 在 main.j…

广西教育杂志社与广西教育编辑部

【广西教育】期刊咨询电话&#xff1a;18366155179 咨询电话&#xff1a;18366155179编辑部----论文投稿---【广西教育】杂志编辑部--期刊发表---【广西教育】编辑期刊出刊--【广西教育】在线咨询---编辑QQ&#xff1a;1529962369 【广西教育】----在线投稿QQ&#xff1a;26480…

【文献阅读】移动边缘计算中基于CNN模型分割的计算适配和负载均衡研究_黄煜

论文原链接&#xff1a;移动边缘计算中基于CNN模型分割的计算适配和负载均衡研究 缩写词 MEC&#xff1a;移动边缘计算&#xff1b; CNN&#xff1a;卷积神经网络&#xff1b; QoE&#xff1a;体验质量&#xff1b; LB&#xff1a;负载均衡&#xff1b; ITM&#xff1a;反变换…

DM8启动报错:全局参数非法

问题描述 开发让把数据库启动下&#xff0c;启动后输入如下报错&#xff1a; 字面意思的报错就是参数非法&#xff0c;推测是有人改参数没改对&#xff0c;可是和开发沟通没人改参数。 --查看进程 [roottopnet31 ~]# ps -ef | grep dmserver dmdba 34732 1 1 5月27 …

K8s service 进阶

文章目录 K8s service 进阶Service 工作逻辑Service 具体实现Service 资源类型ClusterIPNodePortLoadBalancerExternalName Service 与 EndpointEndpoint 与 容器探针自定义Endpoint Service 相关字段sessionAffinityexternalTrafficPolicyinternalTrafficPolicypublishNotRead…

异构图上的连接预测二

异构图上的连接预测二 对整个大图进行transform处理获取批次子图定义GNN网络定义分类器&#xff1a;整合模型。开始训练&#xff1a; 对整个大图进行transform处理 详细描述过程都在代码中体现。 transform T.RandomLinkSplit(num_val0.1, # 10%的 边 作为验证集&#xff0c…

Python怎么实现动态的方法调用?比如Ruby就有元编程

在Python中&#xff0c;你可以使用getattr函数来实现动态的方法调用&#xff0c;这与Ruby中的元编程类似。getattr函数用于获取对象&#xff08;如模块、类、实例等&#xff09;的属性&#xff0c;如果属性是一个方法&#xff0c;那么你可以像调用普通方法一样调用它。 以下是一…

cfa三级大神复习经验分享系列(三)

怎么才能通过考试&#xff1f;   很简单----努力&#xff01; 第一&#xff1a;要熟   书看得再多&#xff0c;知识点掌握得再全面&#xff0c;最终是在考试中体现出来。光看书不行&#xff1b;只是看懂了不行&#xff1b;看懂了&#xff0c;记不住不行&#xff1b;记住了…

Chisel入门——在windows下vscode搭建|部署Scala2.13.3开发环境|用Chisel点亮FPGA小灯

文章目录 前言一、vscode搭建scala开发环境1.1 安装Scala官方插件Scala Syntax1.2 创建hello_world.scala文件1.3 确认java的版本(博主使用的是1.8)1.4 下载Scala Windows版本的二进制文件1.5 配置环境变量1.6 交互模式测试一下1.7 vscode运行scala 二、windows安装sbt2.1 下载…

全屏后 element-ui 组件不显示

文章目录 问题分析ElementUI 解决方案ElementPlus 解决方案 注意 问题 上篇我们说到如何 将 DIV 全屏展示 在使用将页面中指定的 DIV 全屏展示后&#xff0c;出现全屏后 element-ui 组件不显示&#xff0c;全屏后展示的提示信息是没有的&#xff0c;如下如所示&#xff1a; 全…

【linux自动化实践】linux shell 脚本 替换某文本

在Linux shell脚本中&#xff0c;可以使用sed命令来替换文本。以下是一个基本的例子&#xff0c;它将在文件example.txt中查找文本old_text并将其替换为new_text sed -i s/old_text/new_text/g example.txt解释&#xff1a; sed: 是stream editor的缩写&#xff0c;用于处理文…