Vue之状态管理的简单使用(事件总线(Event Bus),Vuex和若依前端示例)

文章目录

  • Vue之状态管理的简单使用(事件总线(Event Bus),Vuex和若依前端示例)
    • Vue之事件总线(Event Bus)的简单使用
    • Vuex进行状态管理的简单使用
    • 若依前端代码store状态管理:

Vue之状态管理的简单使用(事件总线(Event Bus),Vuex和若依前端示例)

使用事件总线(Event Bus)或通过 Vuex 进行状态管理。这两种方法都可以实现在异步操作完成后通知Vue组件执行特定的方法

Vue之事件总线(Event Bus)的简单使用

1.安装依赖

npm install vue-bus

2.main.js中引入和使用 Vue Bus

// main.js
import Vue from 'vue';
import App from './App.vue';
import VueBus from 'vue-bus';Vue.use(VueBus);new Vue({render: h => h(App),
}).$mount('#app');

3.组件中通过 $bus 来使用 Vue Bus

// YourComponent.vue
export default {methods: {sendMessage() {// 发送消息this.$bus.emit('message', 'Hello from Vue Bus!');},},created() {// 监听消息this.$bus.on('message', message => {console.log('Received message:', message);});},
};

在这个例子中,通过 $bus.emit 方法发送了一个名为 ‘message’ 的消息,并通过 $bus.on 方法在组件创建时监听了这个消息。

请注意,Vue Bus 是一个简单的事件总线实现,用于在 Vue 组件之间进行通信。如果你的项目较大或需要更高级的状态管理,考虑使用 Vuex。

Vuex进行状态管理的简单使用

简单使用 Vuex 主要包括以下几个步骤:

1.安装 Vuex: 首先,确保你的 Vue.js 项目已经安装了 Vuex。如果没有安装,可以通过以下命令进行安装:

npm install vuex

2.创建 Vuex Store: 在你的项目中创建一个 Vuex store。这个 store 就是用来存储应用的状态的地方。通常,你需要在一个单独的文件中创建它,例如 store.js:

// store.js
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--;}}
});

3.将 Vuex Store 集成到你的 Vue 应用中: 在你的主应用文件(通常是 main.js)中导入并使用 Vuex:

// main.js
import Vue from 'vue';
import App from './App.vue';
import store from './store';new Vue({render: h => h(App),store // 将 store 注入到根实例中
}).$mount('#app');

4.在组件中使用状态和触发 mutations: 在你的组件中,你可以使用 mapState 辅助函数来映射 Vuex store 中的状态,并使用 mapMutations 辅助函数来映射 mutations。例如,在一个组件中:

<!-- MyComponent.vue -->
<template><div><p>Count: {{ count }}</p><button @click="increment">Increment</button><button @click="decrement">Decrement</button></div>
</template><script>
import { mapState, mapMutations } from 'vuex';export default {computed: {...mapState(['count']) // 映射 count 到组件的计算属性},methods: {...mapMutations(['increment', 'decrement']) // 映射 mutations 到组件的方法}
};
</script>

在这个例子中,count 是从 Vuex store 中映射到组件的计算属性,而 increment 和 decrement 方法则是映射到组件的方法中,可以通过按钮点击来触发相应的 mutations。

这就是一个简单的 Vuex 使用的基本示例。当然,Vuex 还提供了更多高级的特性,根据项目的需要,你可以使用 getter、actions 等来进一步组织和管理你的状态(可以参考若依前后端分离的前端代码)。

若依前端代码store状态管理:

1.Vuex store的index.js
在这里插入图片描述
2.其中一个store模块的示例dict.js
在这里插入图片描述
3.更方便的使用store状态属性值的getters.js
在这里插入图片描述
4. Vuex Store 集成到你的 Vue 应用中main.js中引入
在这里插入图片描述
在这里插入图片描述
5.组件中使用
(1)getters的使用(vue页面或者js组件中使用)

//1.直接使用
this.$store.getters.dict
//2.先引入再使用
import store from "@/store";
store.getters.dict

(2)actions和getters的使用示例(vue页面或者js组件中使用)
在这里插入图片描述
关于若依的这些截图是部分若依字典关于store的示例,若想详细了解若依字典的逻辑可参考我的如下文章:
若依字典的使用
vue之若依字典的导入使用(不直接使用若依框架,只使用若依字典)

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

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

相关文章

两行代码实现翻译梦?!Argmax全新神器WhisperKit引领开发者跨越语言障碍,一窥未来无界沟通的新时代!

今天&#xff0c;快速且无误的翻译神器WhisperKit惊艳问世&#xff0c;只需两行代码&#xff0c;即可让任何应用轻松实现翻译梦&#xff0c;Argmax团队倾力打造&#xff0c;引领开发者走进全新的语言无界时代&#xff01; 你知道吗&#xff1f;只需2行代码&#xff0c;WhisperK…

vscode 插件 Tailwind CSS IntelliSense 解决 class 提示问题

问题描述&#xff1a; 如下写js字符串是没有class智能提示的&#xff1a; const clsName bg-[#123456] text-[#654321] return <div className{clsName}></div>解决方案&#xff1a; 安装 clsx 依赖 pnpm i clsx设置 vscode 的 settings.json {"tailwin…

判断当前设备是不是安卓或者IOS?

代码(重要点): 当前文件要是 xxx.js文件,就需要写好代码后调用才会执行: // 判断是不是安卓 const isAndroid () > {return /android/.test(navigator.userAgent.toLowerCase()); }// 判断是不是ios const isIOS () > {return /iphone|ipad|ipod/.test(navigator.use…

【Unity3D小功能】Unity3D中Text使用超链接并绑定点击事件

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中遇到了要给Text加超链接的需求&#xff0c;研究了实现…

transformer_位置编码代码笔记

transformer_位置编码代码笔记 transformer输入的序列中&#xff0c;不同位置的相同词汇可能会表达不同的含义&#xff0c;通过考虑位置信息的不同来区分序列中不同位置的相同词汇。 位置编码有多种方式&#xff0c;此处仅记录正余弦位置编码 正余弦位置编码公式如下&#x…

关于source批量处理sql命令建立数据库后发现中文乱码问题解决方案(Mysql)

今天在使用souce建表的时候发现自己表结构中的中文出现了乱码问题&#xff0c;那么具体的解决方案如下&#xff1a; 首先我们先使用命令行连接自己的数据库 mysql -u root -p 12345 然后使用show variables like "char%"; 如果说你的这个里面不是utf-8那么就是出现了…

深度学习经典模型之BERT(下)

在"深度学习经典模型之BERT(上)"我们描述了BERT基本信息、意义、与GPT和Transformer的区别、预训练、自监督等相关信息后&#xff0c;本章节将介绍BERT的输入、Encoder、微调及两个主流变种。 BERT inputs 切词方法 BERT的切词方法用的是WordPiece embeddings&…

线程的创建和使用threading.Thread()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 线程的创建和使用 threading.Thread() [太阳]选择题 关于以下代码的输出是&#xff1f; import threading import time def f(name): print(name) for i in range(3): print…

【RT-DETR有效改进】 | Neck篇 | 利用ASF-YOLO改进特征融合层(适用于分割和目标检测)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是ASF-YOLO(发布于2023.12月份的最新机制)。这个模型通过结合空间和尺度特征,提高了在处理细胞图像时的准确性和速度。在实验中,ASF-YOLO在2018年数据科学竞赛数据集上取得了卓越的…

数据结构-顺序表详解专题

目录 顺序表 1.简单了解顺序表 2.顺序表的分类 2.1静态顺序表 2.2动态顺序表 2.3typedef命名作用 3.动态顺序表的实现 SeqList.h SeqList.c test.c 顺序表 1.简单了解顺序表 顺序表是线性表的一种&#xff0c;线性表是在逻辑上是线性结构&#xff0c;在物理逻辑上并…

sklearn 计算 tfidf 得到每个词分数

from sklearn.feature_extraction.text import TfidfVectorizer# 语料库 可以换为其它同样形式的单词 corpus [list(range(-5, 5)),list(range(-6,4)),list(range(12)),list(range(13))]# corpus [ # [Two, wrongs, don\t, make, a, right, .], # [The, pen, is, might…

第17次修改了可删除可持久保存的前端html备忘录:增加年月日星期,增加倒计时,更改保存区名称可以多个备忘录保存不一样的信息,匹配背景主题:现代深色

第17次修改了可删除可持久保存的前端html备忘录&#xff1a;增加年月日星期&#xff0c;增加倒计时&#xff0c;更改保存区名称可以多个备忘录保存不一样的信息&#xff0c;匹配背景主题&#xff1a;现代深色 备忘录代码&#xff1a; <!DOCTYPE html> <html lang&quo…