当前位置: 首页 > news >正文

Pinia:状态管理库

Pinia

为vue设计的一个现代化的状态管理库,vue3生态系统中的一个核心组件,

专为利用Vue3的新特性设计,替代Vuex称为Vue应用的状态管理标准,提供了更简洁的API,更好的类型安全,以及易于调试的功能

状态管理

在前端应用开发中,用来集中管理和协调应用程序状态的一种工具.在这里指的是像用户登录信息,UI状态,列表数据等需要被多个组件共享或者跨组件同步的一些应用程序运行时的数据.

使用方法

创建store
import { defineStore } from 'pinia'//创建一个store,需要通过defineStore方法创建,并且指定名称和state、getter、actions
export const useMyCounterStore = defineStore('myCounter', {// 定义state,一般都设置的state: () => {return {count : 1}},// 定义getter,可以省略getters: {double : (state) => state.count * 2},//定义actions,一般都设置的actions: {increment(){this.count++;}}})

在ts文件中定义一个store,对一个响应式对象,响应式对象的映射,响应式对象的方法等进行封装

使用store
<script>import store from 创建的store
</script>
<template>以{{ store.属性 }}的方式进行使用也可以通过@click='store.方法'的方式进行绑定
</template>
使用组合式的方式编写
import { ref, computed } from 'vue'
import { defineStore } from 'pinia'export const useCounterStore = defineStore('counter', () => {const count = ref(0)const doubleCount = computed(() => count.value * 2)function increment() {count.value++}//分别指:state、getter、actionsreturn { count, doubleCount, increment }
})

将属性方法和computed()映射的结果写在一个方法内进行export导出

持久化插件

将store数据存储到浏览器的localStorage中

在main.js中进行引入和使用

import persist from 'pinia-plugin-persistedstate'
//引入持久化插件
app.use(createPinia().use(persist))
//使用持久化//并在创建的store中开启持久化
persist:true
使用场景:优化前端的重复请求

在之前多个组件调用同一个组件时

会多次调用这个组件中的同一个方法

现在可以通过pinia实现组件中数据的共享

http://www.lryc.cn/news/351889.html

相关文章:

  • Mokito的一些API
  • 前端已死? Bootstrap--CSS组件
  • codewars check_same_case 题解
  • 【Text2SQL 经典模型】X-SQL
  • 蓉耀·时尚双子星------Yestar艺星首家星美学概念院璀璨启航
  • Undet for SketchUp 2023.3 点云建模软件 支持支持草图大师sketchup2021-2022-2023
  • CHI dataless 传输——CHI(4)
  • vue3第三十节(vue3 vite中使用sass)
  • blender 烘焙渲染图片,已经导出fbx,导出贴图。插件生成图片
  • ASO行业面临洗牌,苹果应用商店加搜索广告!
  • Labelme自定义数据集COCO格式【实例分割】
  • 【网络安全】Linux 应急响应-溯源-系统日志排查知识点
  • Spark项目实训(一)
  • 爬虫基础1
  • vlan综合实验
  • 如何使用ffmpeg 实现10种特效
  • C语言如果变量全部在全局内存空间会怎么样
  • 【YOLO改进】换遍MMPretrain主干网络之ConvNeXt-Tiny(基于MMYOLO)
  • 【数据库】MySQL
  • JVM运行时内存:垃圾回收器(Serial ParNew Parallel )详解
  • The Missing Semester of Your CS Education(计算机教育中缺失的一课)
  • 如何为ChatGPT编写有效的提示词:软件开发者的指南
  • angular插值语法与属性绑定
  • Python ❀ 使用代码解决今天中午吃什么的重大生存问题
  • 做抖音小店需要清楚的5个核心点!
  • 文件流下载优化:由表单提交方式修改为Ajax请求
  • 基础3 探索JAVA图形编程桌面:逻辑图形组件实现
  • 前后端部署笔记
  • 设计模式9——适配器模式
  • 一文了解基于ITIL的运维管理体系框架