Pinia从安装到使用

ops/2024/10/21 11:58:29/

什么是Pinia

添加Pinia到vue项目

使用Pinia实现计数器案例

counter.js

javascript">import {defineStore} from "pinia";
import {ref} from "vue";export const useCounterStore = defineStore('coutner',()=>{//定义数据(state)const count = ref(0)//定义修改数据的方法(action同步+异步)const add = ()=>{count.value++}//以对象的形式return供组件使用return {count,add}
})

App.vue

javascript"><script setup>
import {computed, provide, ref, watch} from "vue";
import Son from './components/Son.vue';
import {useCounterStore} from "./stores/counter";
//导入//执行方法得到useCounterStore的实例对象,实例化
const counterStore = useCounterStore()</script><template><div><button @click="counterStore.add">{{counterStore.count}}</button></div>
</template>

getter和异步action

storeToRefs

storeToRefs 是 Pinia 提供的一个实用函数,用于将 store 中的状态转换为响应式引用(reactive refs)。这使得在 Vue 组件中使用 Pinia 的状态更加方便,尤其是在组合式 API 中。

为什么使用 storeToRefs?

在组合式 API 中,直接从 store 中解构状态可能会导致失去响应性。使用 storeToRefs 可以确保我们解构出来的每个状态仍然是响应式的。

需要注意的是,要区分一下,解构数据和解构方法是不一样的

解构数据需要加上storeToRefs(否则会失去响应性),解构方法则不需要担心。

javascript"><script setup>
import {computed, provide, ref, watch} from "vue";
import Son from './components/Son.vue';
import {useCounterStore} from "./stores/counter";
import {storeToRefs} from "pinia";
//导入//执行方法得到useCounterStore的实例对象,实例化
const counterStore = useCounterStore()
const {add} = counterStore
const {count} = storeToRefs(counterStore)
</script><template><div><button @click="add">{{count}}</button></div>
</template>

总结


http://www.ppmy.cn/ops/118350.html

相关文章

DualGS:高效人体体积视频渲染技术,实现复杂4D数字人表演的实时播放引言

随着虚拟现实(VR)和增强现实(AR)技术的发展,对高质量、低延迟的人体体积视频的需求日益增长。传统的视频压缩和渲染方法在处理复杂的4D人体动作时往往面临性能瓶颈。为了解决这一问题,研究人员开发了一种名为DualGS的新型高效人体体积视频渲染技术。本文将详细介绍DualGS…

Vue ElemetUI table实现双击修改编辑某个内容

1、使用cell-dblclick事件&#xff0c;当双击时触发事件 <el-table cell-dblclick"handleCellDblClick" 2、单元格设置 主要重点为判断双击时切换input框&#xff0c;然后绑定ref&#xff0c;设置失去焦点时触发点方法&#xff0c;与按enter键触发点方法 <…

shell编程:dirname命令获取路径详解

dirname 命令是 Unix/Linux 系统中用于获取给定路径中的目录部分的命令。它不会改变当前工作目录&#xff0c;而是简单地分析提供的路径字符串&#xff0c;并输出该路径的目录部分。 基本用法 命令格式&#xff1a; dirname [OPTION]... PATH...OPTION&#xff1a;通常&#x…

如何使用ssm实现线上旅游体验系统+vue

TOC ssm691线上旅游体验系统vue 绪论 课题背景 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化。目前&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得到提升&#xff0…

通过WinCC在ARMxy边缘计算网关上实现智能运维

随着信息技术与工业生产的深度融合&#xff0c;智能化运维成为提升企业竞争力的关键因素之一。ARMxy系列的ARM嵌入式计算机BL340系列凭借其高性能、高灵活性和广泛的适用性&#xff0c;为实现工业现场的智能运维提供了坚实的硬件基础。 1. 概述 ARMxy BL340系列是专为工业应用…

如何批量获取安卓设备上所有应用的桌面图标

文章目录 概述一、准备工作1.1 安装 ADB安装 ADB&#xff1a;1.2 获取设备上的应用包名1.3 使用 ADB 导出 APK 文件 二、提取桌面图标流程2.1 反编译 APK 文件2.2 解析 AndroidManifest.xml2.3 搜索图标资源文件 三、 编写 Python 自动化工具3.1 代码结构3.2 运行脚本 四、错误…

在二维平面中,利用时差定位(TDOA)技术,结合N个锚点,通过三边法进行精确定位,采用MATLAB实现

文章目录 主程序程序代码运行结果 主程序 主程序代码如下&#xff1a; % TDOA测距定位&#xff0c;二维平面&#xff0c; 4个锚节点的情况 % author:Evand&#xff08;VX&#xff1a;matlabfilter&#xff0c;除前期达成一致外&#xff0c;讲解需付费&#xff09; % 2024年9月…

RabbitMQ的高级特性-TTL

TTL(Time to Live, 过期时间), 即过期时间. RabbitMQ可以对消息和队列设置TTL.当消息到达存活时间之后, 还没有被消费, 就会被⾃动清除 设置消息的TTL&#xff1a; ①设置队列的TTL&#xff0c;队列中所有的消息都有相同的过期时间 …