【Vue3】Pinia存储及读取数据

news2024/11/23 19:45:26

【Vue3】Pinia存储及读取数据

  • 背景
  • 简介
  • 开发环境
  • 开发步骤及源码

背景

随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内容并非完全原创,大多是参考其他文章资料整理所得,感谢每位技术人的开源精神。

简介

本文介绍 Vue3 中如何使用 Pinia 存储和读取数据。

Pinia 是 Vue 专属的状态管理库,允许跨组件或页面共享数据。

开发环境

分类名称版本
操作系统WindowsWindows 11
IDEVisual Studio Code1.91.1

开发步骤及源码

1> 创建 Vue3 工程,参考:【Vue3】工程创建及目录说明。

2> 执行 npm i pinia 命令安装 Pinia。

PS D:\...> npm i pinia

added 3 packages in 10s

12 packages are looking for funding
  run `npm fund` for details

3> 修改 src 目录下 main.ts,引入 Pinia。

import { createApp } from 'vue'
import App from './App.vue'
// 引入
import { createPinia } from 'pinia'

createApp(App)
    // 创建并使用
    .use(createPinia())
    .mount('#app')

4> 在 src 目录下创建 store 目录,并在此目录中创建一个 book.ts,用于集中存储书籍数据。

import { defineStore } from "pinia"

export const useBookStore = defineStore('book', {
    // state 必须写成函数形式,返回的对象即是集中存储的数据
    state() {
        return {
            bookCount: 5,
            books: [
                { id: '001', title: '坐天下', author: '张宏杰' },
                { id: '002', title: '明朝那些事儿', author: '当年明月' },
                { id: '003', title: '太白金星有点烦', author: '马伯庸' },
                { id: '004', title: '活着', author: '余华' },
                { id: '005', title: '饥饿的盛世', author: '张宏杰' },
            ]
        }
    }
})

注意命名规范 useXxxStore,其中前缀 use 和后缀 Store 是固定的。

5> 新建一个功能组件读取并展示 Pinia 中数据。

<template>
    <div class="books">
        <h2>图书数量:{{ bookStore.bookCount }}</h2>
        <h2>图书列表</h2>
        <ul>
            <li v-for="book in bookStore.books" :key="book.id">
                {{ book.title }} -- {{ book.author }}
            </li>
        </ul>
        
    </div>
</template>

<script setup lang="ts">
import { useBookStore } from '@/store/book'

const bookStore = useBookStore()
</script>

<style scoped lang="scss">
.books {
    background-color: aquamarine;
    padding: 20px;
    li {
        font-size: 20px;
        height: 35px;
        line-height: 35px;
    }
}
</style>

注意:需要执行 npm install -D sass 命令安装 CSS 预处理器。

6> 修改 Vue 根组件 src/App.vue,引入以上组件。

<template>
  <div class="content">
    <Book />
  </div>
</template>

<script setup lang="ts">
import Book from './components/Book.vue'
</script>

<style scoped lang="scss">
.content {
  background-color: darkgray;
  padding: 20px;
}
</style>

7> 执行命令 npm run dev 启动应用,浏览器访问:http://localhost:5173/
在这里插入图片描述

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

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

相关文章

如何用OceanBase与DataWorks,打造一站式的数据集成、开发和数据服务

导语&#xff1a;在OceanBase 2024年开发者大会的技术生态论坛上&#xff0c;阿里云DataWorks团队的高级技术专家罗海伟&#xff0c;详细阐述了一站式大数据开发治理平台DataWorks的能力&#xff0c;并对于如何基于OceanBase和Dataworks构建一站式数据集成、开发以及数据服务进…

解锁模数学习新境界:电路仿真软件,你的数字与模拟世界桥梁大师!

在这个科技日新月异的时代&#xff0c;模数转换&#xff08;A/D与D/A&#xff09;不仅是电子工程师的必修课&#xff0c;也是众多科技爱好者探索数字与模拟世界奥秘的钥匙。而今&#xff0c;一款强大的电路仿真软件&#xff0c;正悄然成为连接这两大领域的魔法棒&#xff0c;让…

Animate软件基础:各种类型文件使用说明

FlashASer&#xff1a;AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084 FlashASer&#xff1a;实用的各种Adobe Animate软件教程https://zhuanlan.zhihu.com/p/675680471 FlashASer&#xff1a;Animate教程及作品源文件https://zhuanlan.zhihu.co…

ps绘制动图

ps绘制动图教程&#xff08;简易版&#xff09;-直播gif动态效果图 第一步 打开ps绘制几个简单的长方形 第二步 将图层转化为智能图层 第三部 在窗口找到时间轴创建时间轴 第五步 通过变换来鼠标控制图像的变化并打下结束点 第六部 通过图像中的图像大小控制gif的大小 第七部 …

低代码: 系统开发准备之确定一般开发流程,需求分析,复杂度分析,标准开发流程

概述 低代码系统开发之前&#xff0c;我们首先要进行一些准备我们首先知道我们软件开发的一般流程同时&#xff0c;我们还要知道&#xff0c;我们整个系统平台的需求如何之后&#xff0c;我们要基于需求进行设计&#xff0c;包含UI设计与系统架构设计 一般开发流程 系统开发…

2024年【北京市安全员-B证】考试题库及北京市安全员-B证考试技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-B证考试题库根据新北京市安全员-B证考试大纲要求&#xff0c;安全生产模拟考试一点通将北京市安全员-B证模拟考试试题进行汇编&#xff0c;组成一套北京市安全员-B证全真模拟考试试题&#xff0c;学员可…

拉削基础知识——拉床的类型及特点

拉床是所有机械加工工具中最简单的一种&#xff0c;由拉削工具、夹具、驱动装置和支撑架组成。拉削加工可获得较高的尺寸精度和较小的表面粗糙度&#xff0c;生产率较高&#xff0c;适用于大批量生产。拉床按其结构主要分为卧式和立式。应用领域和功能可分为液压拉床、自动拉床…

【香菇带你学Mysql】Mysql数据库主备搭建【建议收藏】

文章目录 1. 概述1.1 为什么要搭建主备架构数据库&#xff1f;1.2 常见的Mysql数据库主备架构 2. Mysql 数据库主备搭建原理3. Mysql数据库主备搭建实操3.1 环境准备3.2 主库操作3.3 从库操作3.4 主从同步验证 4. 总结5. 参考文档 大家可能听过一个段子&#xff0c;当电脑遇到问…

java 关键字

Java的关键字是语言中保留的标识符&#xff0c;它们具有特定的含义和用途&#xff0c;并且不能用作变量名、方法名或类名等。Java 17&#xff08;最新的LTS版本之一&#xff09;中有53个关键字。 下面是每个关键字的含义及其实例 1. 控制结构关键字 这些关键字用于控制程序流…

第十六节、实装攻击判定

一、实现原理 人物三段式攻击的剑气增加一帧伤害即可 二、步骤 创建玩家下面的子物体 1、多边形碰撞体 给第一段攻击添加多边形碰撞体 2、帧触发 在这一帧添加动画&#xff0c;是触发器由失活状态转为使用状态 在这一帧勾选物体状态 3、计算攻击伤害 每一个挂载代码&…

大型语言模型微调的规模效应研究

人工智能咨询培训老师叶梓 转载标明出处 为了解锁大模型在特定下游应用中的全部潜力&#xff0c;通常需要通过微调&#xff08;finetuning&#xff09;来适配任务。尽管微调已成为一种常规做法&#xff0c;但关于不同微调方法的归纳偏差&#xff0c;尤其是规模特性的理解仍然有…

CRC16循环冗余校验

代码&#xff1a; #include<stdio.h> #include <stdint.h>#define uchar unsigned char #define uint unsigned int static const uint8_t auchCRCHi[] { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x0…

33.x86游戏实战-喊话CALL

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

CTFHUB—XSS—DOM反射

开启题目 输入以下语句测试一下&#xff0c;发现页面没有弹出窗口显示“flag” <script>alert("flag")</script> 查看页面源代码&#xff0c; 尝试闭合标签 使用下面代码闭合&#xff0c;然后发现闭合成功了 </script><script>alert("…

【Python机器学习】利用AdaBoost元算法提高分类性能——基于AdaBoost的分类

一旦拥有了多个弱分类以及其对应的alpha值&#xff0c;进行测试就变得非常容易了。现在&#xff0c;要将弱分类器的训练过程从程序中抽出来&#xff0c;然后应用在某个具体的实例上。每个弱分类器的结果以其对应的alpha值作为权重。所有这些弱分类器的结果加权求和就得到了最后…

ElementUI元件库在Axure中使用

一、ElementUI元件库介绍 ElementUI 是一套为开发者、UI/UX设计师和产品经理准备的基于Vue 2.0的桌面端组件库。它以其优雅的设计和丰富的组件&#xff0c;极大地提升了Web应用的开发效率与用户体验。ElementUI的组件设计精致且符合现代UI规范&#xff0c;包括按钮、表单、弹窗…

判断用户是否在pwa环境中打开运行?(已安装的 PWA 与未安装的 PWA 网站之间有什么区别?)

前言&#xff1a; &#x1f449;vue3tsvite项目中使用vite-plugin-pwa搭建 PWA 项目&#xff0c;以及如何处理pwa安装图标的显示隐藏 &#x1f449;pwa在iframe下能否显示&#xff0c;以及在iframe下相关问题解析 如何判断用户是否在pwa环境中运行? 根据pwa配置的display-mo…

Captive Portal验证原理

物联网开发系列&#xff1a;物联网开发之旅① WiFi to Ethernet: 树莓派共享无线连接至有线网口&#xff0c;自动通过Captive Poartal验证物联网开发番外篇之 Captive Portal验证原理 文章目录 工作原理技术细节登录页面的实现自动化登录 登录界面的原理主要涉及到Web认证&…

想用matlab画一个3Y轴x-y图,如何实现??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

Windows 7和Windows10系统如何关闭重复进入Windows启动管理器的现象?

目录 背景: 方法一:使用命令提示符关闭Windows管理器 方法二:通过系统属性来关闭WIndows启动管理器 两种方法的总结: 背景: Windows 启动管理器&#xff08;Windows Boot Manager&#xff09;是 Windows 操作系统中的一个关键组件&#xff0c;它负责在系统启动时管理和引导…