在Typescript + Pinia 中使用 Actions

文件准备 type.ts


import type { PiniaCustomProperties, StateTree, StoreDefinition, _GettersTree, _StoreWithGetters, _StoreWithState } from 'pinia';
import type { UnwrapRef } from 'vue';/**构建 Actions */
type CreateActions<Id extends string, S extends StateTree, A> =A& ThisType<A& UnwrapRef<S>& _StoreWithState<Id, S, _GettersTree<S>, A>& _StoreWithGetters<_GettersTree<S>> & PiniaCustomProperties>;/**构建 Getters */
type CreateGetters<S extends StateTree, G extends _GettersTree<S>> =G& _GettersTree<S>& ThisType<UnwrapRef<S>& _StoreWithGetters<G>& PiniaCustomProperties>/** 构建 pinia 的 Store类型 */
export type CreateStore<State_Type extends StateTree = any,Action_Type = any,Gatter_Type extends _GettersTree<State_Type> = any
> = StoreDefinition<string,State_Type,CreateGetters<State_Type, Gatter_Type>,CreateActions<string, State_Type, Action_Type>
>

Store定义 store.ts

import { defineStore } from 'pinia';
import { type CreateStore } form './type'type StateType = {a: number
}type ActionType = {addA: ()=>void
}const useStore: CreateStore<StateType, ActionType> = defineStore('xxxxStore', {state: () => ({a: 1,}),actions: {addA(){this.a = this.a ++ }}
})export default Store 

Store使用 index.vue

<template><div><div>{{store.a}}</div><div @click="store.addA" >增加</div></div>
</template><script setup lang="ts" >
import useStore from './store'
const store = useStore()
</script>

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

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

相关文章

1207. 有趣的数字图形IV

问题描述 输入一个整数 &#x1d45b; &#xff08; &#x1d45b;≤12 &#xff09;&#xff0c;打印出如下要求的方阵&#xff1a; 除掉右上到左下对角线上的数外的右下半个区域中每个元素等于左边的和上面的元素之和。每个元素场宽为 5 。左上半个区域为空。 输入 一个整…

C语言------指针讲解(3)

一、字符指针 在指针中&#xff0c;我们知道有一类指针类型为字符指针char*; int main() {char ch w;char* pc &ch;*pc w;return 0; } 还有一种使用方式如下&#xff1a; 上述代码中&#xff0c;本质是把hello的首字符的地址放到了pstr中。即把一个常量字符串的首字符…

C++图书管理系统

目录 实现功能 用户管理 图书管理 借阅与归还 未归还图书 部分效果图 结构体 Book 结构体 User 结构体 源代码 编译时在连接器命令行加入 完整代码 实现功能 用户管理 添加用户&#xff1a;输入用户ID、用户名和密码…

【LeetCode】71.简化路径

1. 题目 2. 分析 3. 代码 我写了一版很复杂的代码&#xff1a; class Solution:def simplifyPath(self, path: str) -> str:operator [] # 操作符的栈dir_name [] # 文件名的栈idx 0cur_dir_name ""while(idx < len(path)):if path[idx] /:operator.ap…

ffmpeg 怎样分析ts 流中的 sdt 表

--------------------------------------------------------- author:hjjdebug date: 2024年 07月 24日 星期三 10:34:08 CST descriptor: ffmpeg 怎样分析ts 流中的 sdt 表 --------------------------------------------------------- 1. sdt 的概念 sdt 就是服务描述表&a…

提高性能的常见技术

1.数据库层面&#xff1a; 读写分离&#xff0c;对于大部分业务来说&#xff0c;读取操作要大于写入&#xff0c;同一个库&#xff0c;既读又写的话&#xff0c;负载会比较重&#xff0c;拆分为读库和写入库&#xff0c;可以降低数据库的负载&#xff0c;分时或延迟将写入的数…

AI绘画入门实践|Midjourney:使用 --seed 制作情侣头像与漫画

在 Midjourney 中&#xff0c;seed 是指一个种子&#xff0c;用于生成图像时的起点或基础。 使用格式&#xff1a;--seed 获取的seed值 获取 seed 值 使用 seed 生成图像 a cute boys avatar, background with blue sky and white cloud, Ghibli Studio style, Hayao Miyazaki…

【电子数据取证】网络钓鱼邮件取证:从识别到追踪

文章关键词&#xff1a;电子数据取证、邮件取证、电脑取证 一、前言 在数字化时代&#xff0c;电子邮件已成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;随着技术的不断发展&#xff0c;网络钓鱼邮件这一威胁也日益猖獗&#xff0c;对个人隐私、企业安全乃至国…

Linux的RPM包 -- 制作

1.简单实现rpm包的制作 1.首先我们需要编写源代码 2.把源代码打包成压缩包 3.在自定义的路径下创建一个rpmbuild文件目录,其中必须包括有{SPECS,SOURCES,RPMS,SRPMS,BUILD,BUILDROOT}这几个文件目录 4.将压缩包存储到SOURCE中 5.在SPECS文件目录中创建一个spec file文件,对其进…

铁塔二轮充电桩协议对接稳定运营大数据面板汽车充电桩系统

信号标准名 信号类型 单位 备注 信号量ID 枚举值 告警级别新设备标准 充电口状态 遥测 0&#xff1a;待连接 05102001 1&#xff1a;空闲 2&#xff1a;充电中 3&#xff1a;已充满 4&#xff1a;异常 5&#xff1a;掉线 电压 遥测 V100 总电压放大100倍 05104001 电流 …

智能爬虫管理:定制化数据抓取方案为企业赋能

摘要&#xff1a; 在数据驱动的时代&#xff0c;精准而高效的数据抓取成为企业决策的命脉。本文将探讨如何通过定制化的智能爬虫管理方案&#xff0c;赋能企业实现数据洞察力的飞跃。我们将深入解析定制化数据抓取的核心优势&#xff0c;分享成功案例&#xff0c;并揭秘如何利…

InteliJ IDEA最新2024版下载安装与快速配置激活使用教程+jdk下载配置

第一步&#xff1a;下载ideaIC-2024.1.4 方法1&#xff1a;在线链接 IntelliJ IDEA – the Leading Java and Kotlin IDE (jetbrains.com) 选择社区版进行下载 方法2&#xff1a;百度网盘 链接&#xff1a;https://pan.baidu.com/s/1ydS6krUX6eE_AdW4uGV_6w?pwdsbfm 提取…

vue3+g2plot实现词云图

词云图 效果预览: 核心代码: import {WordCloud } from @antv/g2plot;fetch(https://gw.alipayobjects.com/os/antfincdn/jPKbal7r9r/mock.json).then((res) => res.json()).then((data) => {const wordCloud = new WordCloud(container, {data,wordField: x,weigh…

电场、磁场、麦克斯韦方程组

电场和磁场 电场和磁场并不是一个虚拟的概念&#xff0c;而是一种确实存在的物质。法拉第提出了电场和磁场&#xff0c;法拉第认为之所以两个电荷之间有力的作用,是因为有一个电荷会在周围空间产生一种物质,这种物质叫做电场。法拉第提出&#xff1a;电场是由电荷产生的。之后人…

【笔记:3D航路规划算法】二、RRT*

目录 一、RRT*于RRT的不同之处1、路径优化&#xff1a;2、成本计算&#xff1a;3、重连线步骤&#xff1a; 二、图解1、初始化2、路径搜索3、效果展示 3D路径规划是在三维空间中寻找从起点到终点的最短或最优路径的一种技术。它广泛应用于无人机导航、机器人运动规划、虚拟现实…

Linux基础命令之用户管理常用命令

在Linux操作系统中&#xff0c;有许多用于用户管理的命令。以下是一些常用的命令 # 1、whoami 显示当前登录的用户名。 $ whoami将返回当前用户的名称。这个命令在所有Linux发行版中都可以使用。 例如&#xff0c;如果你是 root 用户&#xff0c;那么输出可能是这样的&…

Docker部署Elasticsearch8.6.0 Kibana8.6.0

&#xff08;1&#xff09;Docker部署Elasticsearch8.5.3&#xff08;失败…&#xff09; 为了匹配springboot3.0.x&#xff0c;安装Elasticsearch:8.5.3 拉取镜像&#xff0c;遇到问题&#xff01; [rootserver01 ~]# docker pull elasticsearch:8.5.3 8.5.3: Pulling from…

Modbus转EtherCAT网关将Modbus协议的数据格式转换为EtherCAT协议

随着工业自动化技术的快速发展&#xff0c;不同通信协议之间的互操作性变得越来越重要。Modbus作为一种广泛使用的串行通信协议&#xff0c;与以太网为基础的EtherCAT协议之间的转换需求日益增长。本文将从网关功能、硬件设计、性能以及应用案例来介绍这款Modbus转EtherCAT网关…

数据库-浅谈储存过程

数据库-浅谈储存过程 缘起储存过程示例小结 缘起 数据库&#xff0c;已经是这个时代大部分软件系统架构里的标配。一个可靠的数据管理系统的 ACID特性也保证了我们使用到的数据的准确性。 作为软件架构中的基础部分&#xff0c;数据库的操作不应该暴露给用户应用层。所以相关数…

第31篇 计算数据中最长的连续1的个数<一>

Q&#xff1a;如何用Nios II指令计算一个数据中最长的连续1的个数&#xff1f; A&#xff1a;基本原理&#xff1a;所有Nios II指令都是32位长&#xff0c;除了由处理器直接执行的机器指令外&#xff0c;Nios II指令集还包括许多可用于汇编语言的伪指令程序。本实验我们会用…