项目练习:Vue项目中使用Vuex实现全局功能开发

文章目录

  • 一、场景说明
  • 二、代码实现
    • 1、通用方法封装
    • 2、store配置
    • 3、使用Vuex

一、场景说明

我们在开发的过程中,都要求能够把通用方法进行抽象封装,供全局使用
这样,代码更优雅简练。

Vue中就可以用Vuex实现全局方法的开发。
这一篇,实现模块化Vuex的编程方式

二、代码实现

1、通用方法封装

比如,这里实现一个user相关操作的js脚本文件
像这种供Vuex使用的脚本文件,我们要固定的结构。
可以类似理解为javaBean对象。

它有4个不可缺少的部分。

state:字段区

mutations:修改字段的方法区,类似javaBean中的set方法

getters:获取字段值的方法,类似javaBean中的get方法
其中,这个地方,可以抽象到一个公共文件中,但不推荐,影响阅读效果。
配置了这个,那么,action方法中的影藏参数state就有值了。

在其他vue组件中,想要获取值的写法是:this.$store.state.user.token

actions:回调方法区,供外部函数,通过store.dispatch调用

user.js

import { login } from '@/api/login'
const user = {state:{      //字段token:''},mutations:{   //修改字段的方法SET_TOKEN: (state, token) => {state.token = token}},getters:{     //获取字段值的方法token: state => state.user.token},actions:{   //回调方法Login({commit, state},userInfo){const username = userInfo.username.trim()const password = userInfo.passwordconst code = userInfo.codeconst uuid = userInfo.uuid//异步返回处理结果,外面调用者可以通过then接收结果。return new Promise((resolve, reject) => {login(username, password, code, uuid).then(res => {res=res.data;commit('SET_TOKEN', res.token)//成功,则调用resolve,可以把res返回出去resolve(res)}).catch(error => {//失败返回错误信息reject(error)});});}}
}export default user

2、store配置

src/store/index.js

import Vue from 'vue'
import Vuex from 'vuex'
import user from '@/store/modules/user'Vue.use(Vuex)export default new Vuex.Store({modules: {user}
})

3、使用Vuex

          //使用vuex调用接口,可以将通用方法整理到一处。//此处想用用then做后续处理,那么,action里面的方法需要return Promisethis.$store.dispatch('Login',this.loginForm).then((res) => {console.log('222',res);console.log()});

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

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

相关文章

FPC在智能眼镜中的应用探索【新立电子】

在智能穿戴设备领域,智能眼镜具有独特的便携性、交互性和功能性等特点,智能眼镜的设计追求轻薄、美观与高度集成化。传统刚性电路板因体积庞大、难以弯曲,无法满足智能眼镜的复杂结构需求,而FPC其轻薄、柔软、可弯曲的特性&#x…

51c大模型~合集96

我自己的原文哦~ https://blog.51cto.com/whaosoft/12930135 #SnapGen 终于等来能塞进手机的文生图模型!十分之一体量,SnapGen实现百分百的效果 本文的共同一作为墨尔本大学的胡冬庭和香港科技大学的陈捷润和黄悉偈,完成于在 Snap 研究院…

知识图谱+大模型:打造全新智慧城市底层架构

在数字化时代,智慧城市的建设正迎来新一轮的变革。本文将探讨如何结合知识图谱和大模型技术,构建智慧城市的全新底层架构,以应对日益增长的数据量和复杂性,提升城市管理的智能化水平。 知识图谱:智慧城市的知识库 知识…

webrtc获取IceCandidate流程

在WebRTC(Web Real-Time Communication)中,ICECandidate是一个关键概念,它用于描述在建立点对点(P2P)连接时可以考虑的潜在通信端点。以下是关于WebRTC中ICECandidate的详细解释: 一、ICECandidate的定义 ICECandidate对象通常包含以下关键属性: foundation:用于唯一…

Unity 实现Canvas显示3D物体

新建一个UI相机,选择渲染层为UI 将主相机的渲染层去掉UI层 、 将Canvas的RenderMode设置为Screen Space - Camera,将RenderCamera设置为UI相机 新建3D物体的UI父物体,并将3D物体的层级设置为UI层 适当的放缩3DObjParent,让3D物体能显示出来…

“鞋履数据库”:运动鞋店产品信息管理系统

2.1 SSM框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以,SpringMVC也可以。SSH框架是属于重量级…

[源码解析] 模型并行分布式训练Megatron (2) --- 整体架构

link [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 目录 [源码解析] 模型并行分布式训练Megatron (2) --- 整体架构 0x00 摘要0x01 启动 1.1 分布式启动1.2 构造基础 1.2.1 获取模型1.2.2 获取数据集1.2.3 步进函数 1.2.3.1 广播数据0x02 Pretrain0x03 初始化 3.1 …

【Go】Go数据类型详解—map

1. 前言 本篇博客将会介绍Go语言当中的另一大核心数据类型——map(映射),当然在介绍这个数据类型之前我们还是要思考引入这个数据类型的原因: ❓ 需求:要求完成对一个班级所有同学的信息管理(包括但不限于…

自动驾驶---Parking端到端架构

​​​​​​1 背景 自动泊车也是智能驾驶低速功能中比较重要的一部分,低速功能其中还包括记忆泊车,代客泊车等。传统的泊车算法通常使用基于规则或者搜索优化的方案来实现。然而,由于算法的复杂设计,这些方法在复杂的泊车场景中效…

USB接口实现CDC(usb转串口功能)

主控:stm32f429 PHY芯片:usb3320 Cubemx System Core-RCC connectivity-USB_OTG_HS Middleware and Software Packs-USB_DEVICE 时钟配置:根据自己使用的MCU工作频率设置 Generate Code Keil5 打开工程 usbd_cdc_if.c这个文件&…

软件测试框架有什么作用?好用的测试框架分享

在当今软件开发中,软件测试框架扮演着至关重要的角色。测试框架是指用于支持自动化测试及测试管理的环境或平台。它提供了一系列的规则、标准和工具,以确保软件产品的质量。框架涵盖了测试的所有层面,包括单元测试、集成测试和系统测试等。更…

2.1.2 select poll epoll reactor

1. select 的使用方法 fd_set rdset; FD_ZERO(&rdset); // 清空 rdset rdset fdset; // 将 fdset 拷贝到 rdset,准备传给 select select(maxFd 1, &rdset, NULL, NULL, NULL);参数说明: maxFd: 被监控的文件描述符中最大的一个。maxFd 1…

vscode安装fortran插件配置

本章教程,主要介绍如何在vscode上安装fortran插件,以便于使用vscode运行fortran编写的程序。 一、安装插件 首先在插件商店安装这个扩展插件 然后再把Code Runner扩展插件装上 二、下载mingw64 通过网盘分享的文件:mingw64 链接: https://pan.baidu.com/s/1fwS-CwC7dgI

企业该如何进行合格文件外发管理

随着信息技术的迅猛发展,企业间的文件交换变得越来越频繁。但是,如何确保文件传输的安全性与效率,成为企业管理者面临的一个重大挑战。镭速(Raysync)文件外发管理方案以其独特的优势,成为众多企业的首选。本…

(Python+selenium)UI自动化测试详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 我们在进行UI自动化测试时,一般采用javaselenium或者pythonselenium的方式。由于python比较简单,上手快,因此建议大家采用pyt…

使用openvino加速部署paddleocr文本检测模型(C++版)

使用openvino加速部署paddleocr文本检测模型(C++版) 引言1,前处理2,后处理3,C++部署代码引言 文本检测在openvino部署端的前后处理与在paddleocr中的不太一样。 1,前处理 在将文本检测的模型转换成onnx格式(输入输出大小都已固定),并部署到openvino后,其预处理后的输…

2021-04-08 VSC++: 降序折半查找。

void 降序折半查找(int* a, int aa, int aaa) {//缘由https://bbs.csdn.net/topics/399166569int aaaa aaa / 2; bool k 0;if (a[0] aa){cout << 0, cout << ends << "查找&#xff1a;" << aa << endl;k 1;return;}else if (a[aa…

MySQL三层B+树能存多少数据

结论 bigint类型的索引&#xff08;8字节&#xff09;&#xff0c;一条数据假设是1KB的话&#xff0c; 三层B树 能存2000万条数据 该题主要考察数据如何在B树中存储的 计算思路 1.计算叶节点的大小 2.计算子节点的个数&#xff0c;由此算出第三层叶子节点的个数&#xff08;n*n…

win系统B站播放8k视频启用HEVC编码

下载HEVC插件 点击 HEVC Video Extension 2.2.20.0 latest downloads&#xff0c;根据教程下载安装 安装 Random User-Agent 点击 Random User-Agent 安装 配置 Random User-Agent ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dda0ea75096c42c0a79ef6f6f5521…

中伟视界:AI识别摄像头+AI预警平台在矿山皮带空载监测中的应用

在矿山开采和矿物处理过程中&#xff0c;皮带运输机扮演着举足轻重的角色。它们负责将矿石、煤炭等物料从一处运送到另一处&#xff0c;是矿山生产流程中不可或缺的一环。然而&#xff0c;皮带运输机在运行过程中也面临着一些挑战&#xff0c;其中之一便是皮带空载问题。皮带空…