当前位置: 首页 > news >正文

vuex - 21年的笔记 - 后续更新

vuex是什么

Vuex是实现组件全局状态(数据)管理的一种机制,方便的实现组件之间的数据的共享

使用vuex统一管理状态的好处

  • 能够在vuex中集中管理共享的数据,易于开发和后期维护
  • 能够高效地实现组件之间的数据共享,提高开发效率
  • 存储在vuex中的数据都是响应式的,能够实时保持数据与页面的同步

使用vuex

  • npm install vuex –save
  • 创建store.js文件在src项目中,项目中的代码为:代码1
  • 在main.js中引入store:import store from ‘./store’
  • 在main.js的new Vue({})中添加:代码2
// 代码1
export default Vuex.Store = new Vuex.Store({//state中存放的就是全局共享数据state:{ },mutation:{ },action:{ }getters: {  }
})
new Vue({el: '#app',router,components: { App },template: '<App/>',store,render:h=>h(App)
}).$mount('#app')

访问state中数据方式

// 以count数据为例: this.$store.state.count 
import { mapState } from 'vuex' // 从vuex中按需导入mapState函数
// 通过刚才导入的mapSate函数,将当前组件需要的全局数据,映射为当前组件的computed计算属性
computed: { ...mapState( [ 'count' ])

Mutation

Mutation用于变更store中的数据

  • 只能通过mutation变更store数据,不可以直接操作Store中的数据
  • 通过mutation方式虽然操作稍微繁琐,但是可以集中监控所有数据的变化
  • Mutation中定义对应的数据处理函数
  • Mutation中的事件处理函数的传值,一个是本身的传值,一个为接收的值
  • 在mutation中不能写异步代码,如计时器setTimeout等,异步操作写在action中
//传递的参数,接收的参数
add(state,step){state.count += step
}

触发mutaion

在methods中触发:

//在使用数据的页面中处理,该情况为调用stare.js中mutation中的add方法
handle(){//在接收的方法,传递的参数this.store.commit('add', 3)  //commit的作用就是调用某个mutation函数
}

从vuex中按需导入mapMutation函数

import { mapMutations } from vuex
// 通过刚才导入的mapMutation函数,将需要的mutation函数,映射为当前组件的methods方法:(例如调用store.js中的add和del方法)
methods:{ ...mapMutations( ['add', 'del'] )  } 

actions

Actions用于异步操作,但是在Actions中还是要通过触发Mutation的方式间接变更数据

const store = new Vuex.store({// ...省略其他代码mutations: {add(state) {state.count++}},actions: {addAsync(context) {setTimeout(() => {context.commit('add')}, 1000)}}})

在这里插入图片描述

Commit只能触发mutation中的某个函数,通过接收形参context来点出commit
在Actions中不能直接修改state中的数据,必须通过context.commit触发某个motation才行
下图中的dispath函数是专门用来触发actions的
若带有参数,则将参数接在后面
在这里插入图片描述

// 从vuex中按需导入mapActions函数
import { mapActions } from 'vuex'methods: {  // 将所需的函数映射到当前组件的methods中...mapAction( ['addAsync', 'delAsync'] ),...mapMutation(['add','del'])
} //在mapMutations或mapActions中映射方法后,可以直接@click调用方法
<el-button @click="add"></el-button>

Getter

Getter用于对Store中的数据进行加工处理,并不修改store中的数据

getters:{showNum(state){return '当前的数量是:'+state.count+'.'}}

使用getter的方式

// This.$store.getter.名称: {{ $store.getters.showNum }}import { mapGetters } from 'vuex'
conputed:{ ...mapGetters( ['showNum'] ) 

相关文章:

vuex - 21年的笔记 - 后续更新

vuex是什么 Vuex是实现组件全局状态&#xff08;数据&#xff09;管理的一种机制&#xff0c;方便的实现组件之间的数据的共享 使用vuex统一管理状态的好处 能够在vuex中集中管理共享的数据&#xff0c;易于开发和后期维护能够高效地实现组件之间的数据共享&#xff0c;提高…...

ngrok实现内网穿透

在使用jenkins进行自动化部署时&#xff0c;需要设置github的webhook钩子来触发构建&#xff0c;由于jenkins运行在自己的电脑上&#xff0c;因此需要通过内网穿透来接受http请求。 Install ngrok via Homebrew with the following command: brew install ngrok/ngrok/ngrokP…...

开发chrome扩展( 禁止指定域名使用插件)

mainfest.json: {"manifest_version": 3,"name": "ChatGPT学习","version": "0.0.2","description": "ChatGPT,GPT-4,Claude3,Midjourney,Stable Diffusion,AI,人工智能,AI","icons": {&quo…...

Flink:Lookup Join 实现与示例代码

本文要演示的是:在流上关联一张外部表(例如 MySQL 数据库中的一张维表),用于丰富流上的数据,实际上,这正是最普遍的 ”维表 Join“ 的实现方式。通过这种方式和外部维表关联时,依然能关联到最新变化的维度数据,所以才说这是 ”维表 Join“。Lookup Join 与 《Flink Tem…...

python基础知识(四)

if not x % 2 > if x % 2 ! 0 Python HTML和XML解析的第三方库是 Beautifull Soup 不属于软件设计原则是 自底向上 用来表示实体之间联系的是 二维表 当对关系R和S进行自然连接时&#xff0c;要求R和S含有一个或者多个共有的 属性&#xff08;关系就是二维表&#xff09…...

论文笔记:Llama 2: Open Foundation and Fine-Tuned Chat Models

导语 Llama 2 是之前广受欢迎的开源大型语言模型 LLaMA 的新版本&#xff0c;该模型已公开发布&#xff0c;可用于研究和商业用途。本文记录了阅读该论文的一些关键笔记。 链接&#xff1a;https://arxiv.org/abs/2307.09288 1 引言 大型语言模型&#xff08;LLMs&#xff…...

Unity UGUI之Toggle基本了解

在Unity中&#xff0c;Toggle一般用于两种状态之间的切换&#xff0c;通常用于开关或复选框等功能。 它的基本属性如图&#xff1a; 其中&#xff0c; Interactable&#xff08;可交互&#xff09;&#xff1a;指示Toggle是否可以与用户交互。设置为false时&#xff0c;禁用To…...

鸿蒙Harmony应用开发—ArkTS-全局UI方法(日期滑动选择器弹窗)

根据指定的日期范围创建日期滑动选择器&#xff0c;展示在弹窗上。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 本模块功能依赖UI的执行上下文&#xff0c;不可在UI上下文不明确的地方使用&…...

华岳M9制造企业管理软件业务流程 2/4

华岳M9制造企业管理软件业务流程 2/4 步骤3 初始一、应收账款初始余额二、应付账款初始余额三、出纳账项初始余额四、会计账项初始余额五、盘点入库六、存货细目七、存货属性设置八、存货存量控制九、存货价格管理十、月末处理 步骤4 技术一、存货目录二、存货细目三、仓库绑定…...

echarts geo地图加投影两种方法

方法1&#xff0c;geo中加多个地图图形&#xff0c;叠加。缩放时 可能会不一致&#xff0c;需要捕捉georoam事件&#xff0c;使下层的geo随着上层的geo一起缩放拖曳 geo: [{zlevel: 3,//geo显示级别&#xff0c;默认是0 【最顶层图形】map: BJ,//地图名roam: true,scaleLimit: …...

GPT实战系列-LangChain的Prompt提示模版构建

GPT实战系列-LangChain的Prompt提示模版构建 LangChain GPT实战系列-LangChain如何构建基通义千问的多工具链 GPT实战系列-构建多参数的自定义LangChain工具 GPT实战系列-通过Basetool构建自定义LangChain工具方法 GPT实战系列-一种构建LangChain自定义Tool工具的简单方法…...

Docker容器中的mysql自动备份脚本

Docker容器中的mysql自动备份脚本 1. 脚本功能 备份容器中的mysql数据库到宿主机上&#xff0c;自动删除7天前的备份文件 2. 脚本内容 #!/bin/bash # auth Eric source /etc/profile # 设置备份目录和文件名 backup_directory"/app/backup" #测试名字用%Y%m%d%H…...

品精酿啤酒:畅享生活,享受快乐

在现代社会&#xff0c;品牌营销策略对于产品的成功至关重要。Fendi club啤酒之所以能够成为畅享生活、享受时尚的代名词&#xff0c;与其品牌营销策略密不可分。 首先&#xff0c;Fendi club啤酒注重品牌形象的塑造。作为一个时尚品牌&#xff0c;Fendi club啤酒将时尚与品质融…...

进程创建,程序加载运行,以及进程终止,什么是僵尸进程,什么是孤儿进程

进程控制 创建进程&#xff0c;撤销进程&#xff0c;实现进程转换&#xff08;必须一气呵成&#xff0c;使用原语&#xff09; 原语不被中断是因为有关中断指令 创建进程 撤销进程 进程创建fork fork&#xff08;&#xff09;函数会创建一个子进程&#xff0c;子进程会返…...

[python]bar_chart_race设置日期格式

1、设置日期标签的时间格式 # 设置日期格式&#xff0c;默认为%Y-%m-%dbcr.bar_chart_race(df, covid19_horiz.gif, period_fmt%b %-d, %Y) 2、更改日期标签为数值 # 设置日期标签为数值bcr.bar_chart_race(df.reset_index(dropTrue), covid19_horiz.gif, interpolate_period…...

Apache FtpServer在Windows上下载安装与使用

Apache FtpServer在Windows上下载安装与使用 1、Apache Ftp Server下载 进入apache官网 https://mina.apache.org/ftpserver-project/old-downloads.html 下载自己使用的版本。 Apache FtpServer 1.1.1及以下的版本需要JDK1.7的支持 Apache FtpServer 1.1.1以上的版本需要JDK…...

CVE-2024-24112 XMall后台管理系统 SQL 注入漏洞分析

------作者本科毕业设计项目 基于 Spring Boot Vue 开发而成...... [Affected Component] /item/list /item/listSearch /sys/log /order/list /member/list (need time-based blind injection) /member/list/remove 项目下载地址 Exrick/xmall: 基于SOA架构的分布式…...

jwt以及加密完善博客系统

目录 一、背景 二、传统登陆功能&强制登陆功能 1、传统的实现方式 2、session存在的问题 三、jwt--令牌技术 1、实现过程 2、令牌内容 3、生成令牌 4、检验令牌 四、JWT登陆功能&强制登陆功能 1、JWT实现登陆功能 2、强制登陆功能 3、运行效果 五、加密/加…...

elk收集k8s微服务日志

一、前言 使用filebeat自动发现收集k8s的pod日志&#xff0c;这里分别收集前端的nginx日志&#xff0c;还有后端的服务java日志&#xff0c;所有格式都是用json格式&#xff0c;建议还是需要让开发人员去输出java的日志为json&#xff0c;logstash分割java日志为json格式&#…...

vue3中如何实现多个侦听器(watch)

<body> <div id"app"><input type"button" value"更改名字" click"change"> </div> <script src"vue.js"></script> <script>new Vue({el: #app,data: {food: {id: 1,name: 冰激…...

Arduino nRF5x低功耗库:深度解析SYSTEM_OFF与CONSTANT_LATENCY模式

1. 项目概述 Arduino nRF5x_lowPower 是专为 Nordic Semiconductor nRF5x 系列 SoC&#xff08;如 nRF52832、nRF52840、nRF51822&#xff09;设计的 Arduino 兼容低功耗管理库。它并非简单封装睡眠函数&#xff0c;而是深度对接 nRF5x 片上电源管理单元&#xff08;PMU&…...

Arduino Modulino库:Qwiic模块的I²C设备抽象与工程实践

1. 项目概述Arduino Modulino 库是一个面向嵌入式硬件工程师的轻量级 IC 设备管理框架&#xff0c;专为简化 Qwiic 生态系统中模块化外设&#xff08;Modulino&#xff09;在 Arduino 平台上的集成而设计。与通用型传感器库不同&#xff0c;该库并非简单封装底层Wire调用&#…...

ESP-Bootstrap:面向ESP32/ESP8266的嵌入式Web固件基础架构

1. 项目概述ESP-Bootstrap 是一个面向 ESP8266 和 ESP32 平台的嵌入式 Web 应用快速启动框架&#xff0c;其核心定位并非通用 HTTP 库&#xff0c;而是为资源受限的 Wi-Fi MCU 提供可裁剪、可复用、生产就绪的固件基础架构。它不替代 ESP-IDF 或 Arduino-ESP32 的底层网络栈&am…...

龙虾白嫖指南,请查收~诠

1. 什么是 Apache SeaTunnel&#xff1f; Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题&#xff0c;如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&am…...

RevokeMsgPatcher终极指南:Windows平台消息防撤回与多开完整解决方案

RevokeMsgPatcher终极指南&#xff1a;Windows平台消息防撤回与多开完整解决方案 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: http…...

LLM 算法岗 | 八股问答()· 多模态与主流模型架构瞪

7.1 初识三维模型 7.1.1 三维模型的数据载体 随着计算机图形技术的发展&#xff0c;我们或多或少都会见过或者听说过三维模型。笔者始终记得小时候第一次在电视上看到三维动画《变形金刚&#xff1a;超能勇士》的震撼感受&#xff1b;而现在我们已经可以在手机上玩三维游戏《王…...

4.2《深入理解内存池(Memory Pool)与内存块(Memory Slab)设计与实现》

001、内存管理基础:从malloc/free到自定义内存管理器的必要性 一、从一次深夜调试说起 上周排查一个嵌入式设备偶发性死机问题,日志停在某行动态分配代码后消失。堆内存碎片化了——连续运行十几小时后,8MB的堆剩余总量还有3MB,但就是无法分配出一个连续的50KB缓冲区。设备…...

一键生成多语言字幕:用Open-Lyrics轻松实现音频视频AI翻译

一键生成多语言字幕&#xff1a;用Open-Lyrics轻松实现音频视频AI翻译 【免费下载链接】openlrc Transcribe and translate voice into LRC file using Whisper and LLMs (GPT, Claude, et,al). 使用whisper和LLM(GPT&#xff0c;Claude等)来转录、翻译你的音频为字幕文件。 …...

告别命令行恐惧:用SmartGit可视化搞定Git分支与合并冲突

告别命令行恐惧&#xff1a;用SmartGit可视化搞定Git分支与合并冲突 在团队协作开发中&#xff0c;Git分支管理和合并冲突是每个开发者都无法回避的挑战。传统的命令行操作虽然强大&#xff0c;但对于许多开发者来说&#xff0c;复杂的命令和晦涩的错误信息常常让人望而生畏。…...

终极指南:使用smcFanControl掌控Intel Mac风扇转速,彻底解决过热降频问题

终极指南&#xff1a;使用smcFanControl掌控Intel Mac风扇转速&#xff0c;彻底解决过热降频问题 【免费下载链接】smcFanControl Control the fans of every Intel Mac to make it run cooler 项目地址: https://gitcode.com/gh_mirrors/smc/smcFanControl 想让您的Int…...