三、Vue3中使用Pinia修改State的方法

修改Pinia仓库的值有5种方式

src/store/index.ts

import { defineStore } from 'pinia';
import { Names } from './store-name';
export const useTestStore = defineStore(Names.Test, {state:()=>{return {current:1111,name: '小满111'}},getters:{ // 类似computed计算属性 同样有缓存的},actions:{ // 类似 methods方法 可以做同步、异步操作 提交state}
});

第一种修改State的方式

<template><div>pinia: {{ Test.current }} --- {{ Test.name }}<button @click="change">change</button></div>
</template>
<script setup lang="ts">
import  {useTestStore} from './store';
const Test = useTestStore();
// 第一种修改State的方式
const change = () => {Test.current++
}
</script>
<style scoped>
</style>

第二种修改State的方式

<template><div>pinia: {{ Test.current }} --- {{ Test.name }}<button @click="change">change</button></div>
</template>
<script setup lang="ts">import  {useTestStore} from './store';const Test = useTestStore();// 第二种修改State的方式 批量修改对象属性
const change = () => {Test.$patch({current: 999,name: '李四'})
}
</script>
<style scoped>
</style>

第三种修改State的方式

<template><div>pinia: {{ Test.current }} --- {{ Test.name }}<button @click="change">change</button></div>
</template>
<script setup lang="ts">
import  {useTestStore} from './store';
const Test = useTestStore();
// 第三种修改State的方式 向$patch中传入工厂函数 可以写逻辑
const change = () => {Test.$patch((state) => { if(state.current>1113){state.current--;state.name = '罗翔老师';} else {state.current++;state.name = '罗永浩老师';}})
}
</script>
<style scoped>
</style>

第四种修改State的方式

<template><div>pinia: {{ Test.current }} --- {{ Test.name }}<button @click="change">change</button></div>
</template>
<script setup lang="ts">
import  {useTestStore} from './store';
const Test = useTestStore();
// 第四种修改State的方式 覆盖这个state对象
const change = () => {Test.$state = {current: 1024,name: '罗城将军'}
}
</script>
<style scoped>
</style>

第五种修改State的方式

调用actions里面的方式

在 src/store/index.ts 里面的actions里面写个方法

import { defineStore } from 'pinia';
import { Names } from './store-name';
export const useTestStore = defineStore(Names.Test, {state:()=>{return {current:1111,name: '小满111'}},getters:{ // 类似computed计算属性 同样有缓存的},actions:{ // 类似 methods方法 可以做同步、异步操作 提交statesetCurrent(num:number){ // 注意此处不要写箭头函数,否则this指向就不对了this.current = num;}}
});

再在组件里面调用

<template><div>pinia: {{ Test.current }} --- {{ Test.name }}<button @click="change">change</button></div>
</template>
<script setup lang="ts">
import  {useTestStore} from './store';
const Test = useTestStore();
// 第五种 
const change = () => {Test.setCurrent(5173);  // 直接调用setCurrent函数
}
</script>
<style scoped>
</style>

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

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

相关文章

OpenMediaVault控制台web页面密码重置

要重置 OpenMediaVault&#xff08;OMV&#xff09;Web 控制台的密码&#xff0c;可以使用 omv-firstaid 命令行工具中的相应选项。按照以下步骤进行操作&#xff1a; 以管理员权限登录到 OMV 的命令行界面&#xff08;通过 SSH 或直接登录&#xff09;。 ssh登陆到root用户 运…

ubuntu 怎么安装图形界面

ubuntu 安装图形界面的方法&#xff0c;可以通过以下步骤操作来实现&#xff1a; 1、确认版本首先登录一下服务纯缺器ubuntu&#xff0c;查看系统版本。然后用root账号登录&#xff0c;如下图所示&#xff1a; 2、更新apt-get首先要先更新一下apt-get源&#xff0c;输入apt-g…

k8s实践

k8s作为分布式集群部署方案&#xff0c;是一个主流的部署方案。 1. 服务器配置 至少准备3台服务器&#xff0c;首先修改服务器名称 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node1 hostnamectl set-hostname k8s-node2然后关闭防火墙和selinux s…

Linux安装java jdk配置环境 方便查询

编辑/etc/profile文件&#xff1a; vim /etc/profile 在文件尾部添加如下配置&#xff1a; export JAVA_HOME/usr/local/jdk1.8.0_161/ export CLASSPATH.: J A V A H O M E / j r e / l i b / r t . j a r : JAVA_HOME/jre/lib/rt.jar: JAVAH​OME/jre/lib/rt.jar:JAVA_HOME/l…

HBase学习笔记(2)—— API使用

对HBase中常用的API操作进行简单的介绍 对应HBase学习笔记&#xff08;1&#xff09;—— 知识点总结-CSDN博客中介绍的HBase Shell常用操作 更多用法请参考官网&#xff1a;Apache HBase ™ Reference Guide 依赖导入 <dependencies><dependency><groupId>o…

【数据仓库】数仓分层方法详解与层次调用规范

文章目录 一. 数仓分层的意义1. 清晰数据结构。2. 减少重复开发3. 方便数据血缘追踪4. 把复杂问题简单化5. 屏蔽原始数据的异常6. 数据仓库的可维护性 二. 如何进行数仓分层&#xff1f;1. ODS层2. DW层2.1. DW层分类2.2. DWD层2.3. DWS 3. ADS层 4、层次调用规范 一. 数仓分层…

Oracle使用块更改跟踪改善增量备份的性能

1.概述 增量备份的块更改跟踪功能&#xff0c;通过在块更改跟踪文件中的每个数据文件中记录更改的块来提高增量备份的性能。 此文件是存储在数据库区域中的小型二进制文件。 RMAN在生成重做时&#xff0c;跟踪更改的块。 如启用了块更改跟踪&#xff0c;则RMAN将使用更改跟踪文…

2023NOIP A层联测31 总结

T1 有一个长为 n n n 的序列 { a i } \{a_i\} {ai​}&#xff0c;你可以操作若干次&#xff1a;选择一个 i i i&#xff0c;花费 c x c_x cx​ 元将 a i a_i ai​ 变为 ⌊ a i x ⌋ ⌊\frac{a_i}x⌋ ⌊xai​​⌋&#xff0c;你总共有 K K K 元。问最终序列的中位数最小…

25.4 MySQL 函数

1. 函数的介绍 1.1 函数简介 在编程中, 函数是一种组织代码的方式, 用于执行特定任务. 它是一段可以被重复使用的代码块, 通常接受一些输入(参数)然后返回一个输出. 函数可以帮助开发者将大型程序分解为更小的, 更易于管理的部分, 提高代码的可读性和可维护性.函数在编程语言…

[01]汇川IMC30G-E系列运动控制卡应用笔记

简介 IMC30G-E系列产品是汇川技术自主研制的高性能EtherCAT网络型运动控制器&#xff08;卡&#xff09;&#xff0c;同时兼容脉冲轴的控制&#xff1b;IMC30G-E支持点位/JOG、插补、多轴同步、高速位置比较输出、PWM等全面的运动控制功能&#xff0c;具备高同步控制精度。 开发…

Leetcode 160. 相交链表

1. 题解 将null也作为了一种节点&#xff0c;所以&#xff0c;当两条链表是平行的话&#xff0c;最终他们也都会指向null值这个虚拟节点上。 curA 指向 链表A curB 指向 链表B 如果走到结尾 指向另一链表的首部重新走 curA 走了 a c b curB 走了 b c a注意&#xff1a;关…

修改Openwrt软路由的web端口

如何修改openwrt路由器的web访问端口号&#xff1f; 在OpenWrt路由器上&#xff0c;如何修改Web访问端口号&#xff0c;通常涉及到修改HTTP服务器的配置文件。默认情况下&#xff0c;OpenWrt使用的HTTP服务器是uHTTPd。 以下是修改Web访问端口号的步骤&#xff1a; 一、通过…

Dell笔记本电脑 启动时提示解决

https://www.dell.com/support/kbdoc/en-us/000139731/what-the-headless-operation-mode-active-post-message-means-and-how-to-stop-it-appearing-during-start-up dell官方解释&#xff1a; 提示来自于BIOS/UEFI固件中POST Behaviar&#xff0c;只要打开了忽略警告、错误…

Linux编辑器:vim的简单介绍及使用

目录 1.什么是vim 2.vim的基本概念 3.vim 的基本操作 4. 各模式下的命令集 4.1 正常模式命令集 4.2 末行模式命令集 5.补充 5.1 vim支持多文件编辑 5.2 vim 的配置 1.vim 配置原理 2. 常用简单配置选项&#xff1a; 3. 使用插件 1.什么是vim Vim 是从 vi 发展出…

Easyui DataGrid combobox联动下拉框内容

发票信息下拉框联动&#xff0c;更具不同的发票类型&#xff0c;显示不同的税率 专票 普票 下拉框选择事件 function onSelectType(rec){//选中值if (rec2){//普通发票对应税率pmsPlanList.pmsInvoiceTaxRatepmsPlanList.pmsInvoiceTaxRateT}else {//专用发票对应税率pmsPlan…

python十一天

1.不死兔子&#xff1a; # 不死兔子# 现有一只兔子&#xff0c;过四个月就会成熟&#xff0c;生小兔子&#xff0c;小兔子四个月后也会成熟 # 假设兔子不会死亡&#xff0c;一段时间&#xff0c;一共有多少只兔子 month int(input("输入&#xff1a;"))def get_rob…

nmap原理与使用

kali的命令行中可以直接使用 nmap 命令&#xff0c;打开一个「终端」&#xff0c;输入 nmap 后回车&#xff0c;可以看到 nmap 的版本&#xff0c;证明 nmap 可用。 一、端口扫描 扫描主机的「开放端口」&#xff0c;在nmap后面直接跟主机IP&#xff08;默认扫描1000个端口&am…

25 kafka消费者组重平衡

触达与通知 1.位置主题&写调整复习 (TODO) 2.重平衡是通过心跳线程的心跳请求来通知的&#xff0c;需要重平衡则请求响应REBALANCE_IN_PROGRESS。0.10.1.0版本后心跳线程和消息消费线程分离&#xff0c;避免了消息消费时间长影响心跳。heartbeat.interval.ms参数控制心跳请…

SQL使用

--天空会的像哭过&#xff0c;离开你以后 并没有更自由 SQL进行数据的删除 一、删除delete 语法 delete [from] 表名称 where 条件数据删除&#xff0c;不能删除某一列&#xff0c;因为删除是对记录而言 2.1 删除是一条一条删除&#xff0c;每次删除都会将操作写入日志文件 删…

2023.11.14联赛总结

T 1 T_1 T1​给出一个长度为 n n n的序列&#xff0c;你可以进行若干次操作&#xff0c;每次花费 c j c_j cj​元将 a i a_i ai​变为 ⌊ a i j ⌋ \lfloor \frac{a_i}{j} \rfloor ⌊jai​​⌋&#xff0c;你一共有 k k k元。问最终序列的中位数最小是多少。 其中 1 ≤ n , m …