【Vue3】走进Pinia,学习Pinia,使用Pinia

news2025/2/27 8:20:37

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互相学习和建立一个积极的社区。谢谢你的光临,让我们一起踏上这个知识之旅!
请添加图片描述

文章目录

  • 🍋重定向
  • 🍋介绍Pinia
  • 🍋为什么选择Pinia?
  • 🍋前置准备
  • 🍋搭建Pinia
  • 🍋Pinia 存储和读取数据
  • 🍋总结

🍋重定向

在介绍本节的内容之前,我们来介绍一个小知识点—重定向
只要在index.ts中加入了,这样可以帮助我们在首次进入到网站的时候,我们可以直接进入到定位的指定路由组件

 {
      path:'/',
      redirect:'/home'
    }

🍋介绍Pinia

Pinia是一个专为Vue 3设计的集中式状态(数据)管理库,它提供了一种简单而强大的方式来管理应用程序的状态。Pinia的设计理念是尽可能地与Vue的响应式系统集成,以提供最佳的性能和开发体验
在这里插入图片描述

🍋为什么选择Pinia?

  • 基于Vue 3:Pinia是专为Vue 3设计的,可以充分利用Vue 3的新特性和优势。

  • TypeScript支持:Pinia天生支持TypeScript,可以提供更好的类型推断和类型安全。

  • 插件化:Pinia可以轻松地与其他Vue生态系统中的库集成,如Vue Router、Vuex等。

  • 性能优化:Pinia使用了许多性能优化技巧,可以确保应用程序的性能达到最佳状态。

  • 简单易用:Pinia的API设计简单明了,学习曲线较低,可以快速上手。

🍋前置准备

在引入本节的知识点之前,我们把需要准备的案例准备好

我们创建了一个Count.vue,准备代码如下

<template>
<div class="count">
    <h2>当前求和为:{{ sum }}</h2>
<select v-model.number="n">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
    <button @click="_add">加一</button>
    <button @click="_jian">减一</button>
</div>
</template>
<script setup lang='ts' name="Count">
    import {ref} from 'vue'
    let sum = ref(1)
    let n = ref(1)

    function _add(){
        sum.value+=n.value
    }
    function _jian(){
        sum.value-=n.value
    }


</script>
<style scoped>
  .count {
    background-color: skyblue;
    padding: 10px;
    border-radius: 10px;
    box-shadow: 0 0 10px;
  }
  select,button {
    margin: 0 5px;
    height: 25px;
  }
</style>

这里我们要注意在v-model后面要点number否则是字符串的拼接

🍋搭建Pinia

首先我们需要在终端安装一下pinia,使用的命令如下

npm i pinia

之后我们打开main.ts在里面导入、创建、安装就可以了

import {createPinia} from 'pinia'
// 第二步:创建pinia
const pinia = createPinia()
// 第三步:安装pinia
app.use(pinia)

安装成功后,大菠萝就出现了
在这里插入图片描述

🍋Pinia 存储和读取数据

创建一个文件夹store,在里面创建一个Count.ts
在里面添加如下代码

import {defineStore} from 'pinia'

export const useCountStore = defineStore('Count',{
  state(){
    return {
      sum:1
    }
  }
})

之后我们在count.vue中也要进行修改

import {useCountStore} from '@/store/Count'
    const countStore = useCountStore()

在这里插入图片描述

🍋总结

Pinia是一个强大而灵活的Vue状态管理库,它提供了一种简单而优雅的方式来管理应用程序的状态。通过利用Pinia,我们可以更好地组织和管理我们的Vue应用程序,并确保其具有良好的性能和可维护性。如果您正在寻找一种新的状态管理库,不妨试试Pinia,相信它会给您带来惊喜!

下节我们接着介绍使用Pinia修改数据的几种方式

请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

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

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

相关文章

基于GEC6818的QT开发之——通过不同按键控制DHT11模块的数据采集与动态显示

基于GEC6818的QT开发之——通过不同按键控制DHT11模块的数据采集与动态显示 使用环境: ubantu16 QT5.7 开发板GEC6818 实现要求&#xff1a; 利用A53按键1、按键2与温湿度传感器完成QT界面动态显示温湿度记录&#xff0c;并指定温湿度记录超过指定范围&#xff0c;进行报警&…

十四届蓝桥杯 BC A.日期统计

思路&#xff1a; 循环2023的每一天&#xff0c;一共八位数&#xff1b;年份是确定的&#xff0c;只需要循环月份和天数&#xff0c;注意这里已知2023的2月份天数为28天。用b数组 int b[8]{2,0,2,3,month/10,month%10,d/10,d%10};//枚举2023的每一天来和已知数据的八位数字比较…

ESP32蓝牙系列二:协议和规范

本文以ESP32的API接口对GAP GATT ATT再做分析 一、GAP ESP32 BLE 通⽤用访问规范 (GAP) 接口 API 的实现和使⽤用流程&#xff0c; GAP 协议层定义了了 BLE 设备的发现流程&#xff0c;设备管理理和设备连接的建立。 BLE GAP 协议层采⽤用 API 调⽤和事件 (Event) 返回的设计…

从零开始学习在VUE3中使用canvas(四):globalAlpha(全局透明度)

一、简介 在canvas中&#xff0c;我们可以使用下面的方式设置全局透明度&#xff1a; const ctx canvas.getContext("2d");ctx.globalAlpha 0.5; 当然&#xff0c;在设置透明度的时候也可以直接填充带透明度的颜色 ctx.fillStyle "rgba(175, 20, 184, 0.5…

白酒:新型酶制剂在酿造过程中的作用与应用

随着生物技术的不断发展&#xff0c;新型酶制剂在许多领域都得到了广泛的应用。在豪迈白酒的酿造过程中&#xff0c;新型酶制剂也发挥了重要作用。云仓酒庄紧跟科技前沿&#xff0c;积极探索新型酶制剂在酿造过程中的应用&#xff0c;以提高产品质量和生产效率。 首先&#xff…

YOLOV4-车道线检测-车距离预测

1.前言 最近在看华为的CANN框架&#xff0c;发现了一些很有意思的开源算法(本文所有的代码都出自华为开源git发布的代码)&#xff0c;华为最近出了AI PRO开发板&#xff0c;想着现在开发板上用用(不想重新配置环境了&#xff0c;麻烦还累)&#xff0c;看着代码有onnx的模型&…

《深入Linux内核架构》第2章 进程管理和调度 (3)

目录 2.5 调度器的实现 2.5.1 概观 2.5.2 数据结构 2.5.3 处理优先级 2.5.3.1 nice和prior 2.5.3.2 vruntime 2.5.3.3 weight权重 2.5.4 核心调度器 2.5 调度器的实现 调度器的任务&#xff1a; 1. 执行调度策略。 2. 执行上下文切换。 无论用户态抢占&#xff0c;还是…

Spring MVC入门(4)

请求 获取Cookie/Session 获取Cookie 传统方式: RequestMapping("/m11")public String method11(HttpServletRequest request, HttpServletResponse response) {//获取所有Cookie信息Cookie[] cookies request.getCookies();//打印Cookie信息StringBuilder build…

大数据主要技术

1.大数据文件系统&#xff1a; GFS(谷歌的分布式文件系统&#xff09; HDFS&#xff08;hadoop distrubuted file system&#xff09;分布式文件系统&#xff0c;衍生自GFS 2.大数据平台 MapReduce &#xff1a;谷歌的大数据处理平台&#xff0c;服务于搜索 Hadoop&#…

C#混淆心得

C#混淆心得 近期遇到混淆C#代码的需求&#xff0c;在网上找了很多办法&#xff0c;在此记录一下。 混淆的本质就是让代码变丑&#xff0c;让别人看不懂。 为什么要混淆&#xff1a; 1.保护核心代码 可以在一定程度上避免别人偷代码&#xff0c;从而保护重要的部分&#xf…

蓝桥杯单片机快速开发笔记——超声波测距

一、原理分析 超声波测距是一种常见的测距方法&#xff0c;其原理是利用超声波在空气中传播的速度恒定且较快的特性&#xff0c;通过发送超声波信号并接收回波&#xff0c;计算出物体与传感器之间的距离。以下是超声波测距的原理和应用&#xff1a; 原理&#xff1a; 发送超声…

Linux安装Mysql5.7数据库

一、前置条件 系统版本&#xff1a;Linux CentOS 7.5 MySQL版本&#xff1a;mysql5.7.31 二、操作步骤 2.1、关闭mysql服务 service mysqld stop 提示使用命令&#xff1a;systemctl stop mysqld.service 2.2、grep查找已安装的mysql服务 rpm -qa | grep -i mysql 2.3、卸载…

机器学习(1)机器学习的概念与应用领域

文章目录 一、前提二、机器学习的概念与应用领域1.认识①亚瑟•塞缪尔的定义②汤姆米切尔的定义 2.相关术语数据术语训练模型术语获得模型后术语 3.应用领域语音识别计算机视觉自然语言处理①自然语言分析②自然语言生成 大数据分析 一、前提 Python语言具有数量庞大且功能相对…

记录一次爬虫接单项目【采集国际淘宝数据】

1.背景 前几天接了一个爬虫的单子&#xff0c;上周六已经完成这个单子&#xff0c;也收到了酬劳&#xff08;数目还不错&#xff0c;哈哈哈&#xff0c;小喜了一下&#xff09;。这个项目大概我用了两天写完了&#xff08;空闲时间写的&#xff09;。 2.介绍 大概要采集的数据…

Flutter-仿淘宝京东录音识别图标效果

效果 需求 弹起键盘&#xff0c;录制按钮紧挨着输入框收起键盘&#xff0c;录制按钮回到初始位置 实现 第一步&#xff1a;监听键盘弹起并获取键盘高度第二步&#xff1a;根据键盘高度&#xff0c;录制按钮高度计算偏移高度&#xff0c;并动画移动第三步&#xff1a;键盘收起…

深度学习_卷积

卷积 卷积&#xff08;Convolution&#xff09;是数学和计算机科学中的一个重要概念&#xff0c;特别在信号处理和图像处理中应用广泛。在信号处理领域&#xff0c;卷积是两个函数之间的一种数学操作&#xff0c;它表示两个函数的重叠部分的积分量。 在图像处理中&#xff0c…

KKVIEW远程: TODESK退出了还能远程吗

Todesk退出了还能远程吗 当我们谈论Todesk或其他远程桌面软件时&#xff0c;一个经常被提及的问题是&#xff1a;当我退出Todesk后&#xff0c;是否仍然可以远程访问我的计算机&#xff1f;为了回答这个问题&#xff0c;我们首先需要了解Todesk的工作原理和远程访问的基本条件…

WhatsApp商业推广有哪些推广技巧?

在现代化商业&#xff0c;与用户创造紧密、良好的互动体验&#xff0c;建立强大的品牌形象以及找到最佳的推广途径&#xff0c;变得尤为重要。而WhatsApp作为全球使用最广泛的即时通讯应用之一&#xff0c;成为无数企业选择优选的推广平台。那么&#xff0c;在WhatsApp商业推广…

图书推荐|西门子S7-1200 PLC编程与应用实例

一线资深工程师的全彩版PLC实战教程&#xff0c;软硬件及编程全方位详解&#xff08;配视频教学&#xff09; 本书内容 《西门子S7-1200 PLC编程与应用实例》对西门子S7-1200 PLC的硬件和编程软件的功能进行详细讲解&#xff0c;内容包括PLC编程基础、博途TIA软件入门、指令介…

使用OCC进行切割操作

OCC中切割操作以一个平面作为切割面&#xff0c;对物体进行切割操作 //要操作的图形 TopoDS_Shape shape getHanleShape(); //构造切割面 TopoDS_Shape faceShape getSplitterFace(); //切割操作 BOPAlgo_Splitter splitter; splitter.AddArgument(shape); splitter.AddTool(…