Vue3 pinia的基本使用

pinia的使用跟vuex很像,去除了很多沒用的api,寫法有兩種,一種老式的選項式api還有一種組合式api,用哪種根據自己喜好來,以下示例為組合式api

更多教程參考官網:pinia官網icon-default.png?t=N7T8https://pinia.vuejs.org/zh/

安裝

npm install pinia

配置

import { createPinia } from 'pinia';
import persisted from "pinia-plugin-persistedstate";//持久化插件
import App from './App.vue'
const pinia = createPinia();
const app = createApp(App)
app.use(pinia.use(persisted));//使用pinia以及pinia持久化插件

新建store文件夾=>index.js

引入defineStore方法穿件一個store,主要接收三個參數

參數一:store的唯一key值

參數二:數據存儲區以及方法,

參數三:持久化配置(將數據放緩存持久保存)

import {defineStore
} from "pinia"
import {ref
} from "vue"// 首頁屬性
export const usehomeStore = defineStore('storeKey', () => {let menuState = ref(false)//菜單展開狀態const testData = ref('測試');function changeMenuStateFn() {menuState.value = !menuState.value}return {menuState,testData,changeMenuStateFn,}
},
{persist:{enabled:true,//是否開啟持久化,對象形式不寫默認為開啟key:'menuShowState',//存儲時候的key值,默認為defineStore的keystorage:"sessionStorage",//存儲類型,默認localStoragepaths:['menuState'],//需要持久化的數據,默認全部serializer:{deserialize:()=>{console.log('ooo');},serialize:()=>{console.log('ppp');},},//序列化方法,默認為JSON.parse與JSON.stringifybeforeRestore: (ctx) => {console.log(`即將恢復 '${ctx.store.$id}'`)},afterRestore: (ctx) => {console.log(`剛剛恢復完 '${ctx.store.$id}'`)},}
}
)

頁面使用:

使用的時候記得使用一下,因為向外暴露的是一個方法,所以需要調用一下才能獲取到值,因為在store里面已經使用ref響應過了 所以無需用ref定義,直接在頁面使用即是響應式數據,

注意:此處盡量不要解構,解構會丟失響應式,如果一定要解構請使用storeToRefs,

此方法需要從pinia中導入,

使用示例:示例來自官網

<script setup>
import { storeToRefs } from 'pinia'
const store = useCounterStore()
// `name` 和 `doubleCount` 是響應式的 ref
// 同時通過插件添加的屬性也會被提取為 ref
// 并且會跳過所有的 action 或非響應式 (不是 ref 或 reactive) 的屬性
const { name, doubleCount } = storeToRefs(store)
// 作為 action 的 increment 可以直接解構
const { increment } = store
</script>
import {usehomeStore,usePublic} from "@/store/index.js"
const homeStore = usehomeStore();
const publicStore = usePublic();
<el-aside class="aside" :width="homeStore.menuState?'60px':'200px'">

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213004.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213004.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213004.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習基本概念2

資料來源&#xff1a; https://www.youtube.com/watch?vYe018rCVvOo&listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index1 https://www.youtube.com/watch?vbHcJCp2Fyxs&listPLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J&index2 分三步 1、 定義function b和w是需要透…

linux之autoconf(1)基礎介紹

Linux之autoconf(1)基礎介紹 Author&#xff1a;Onceday Date&#xff1a;2023年2023年12月10日 漫漫長路&#xff0c;才剛剛開始… 本文主要內容翻譯自Autoconf官方文檔&#xff0c;僅供學習交流之用。 全系列文章請查看專欄: buildroot編譯框架_Once_day的博客-CSDN博客。…

FL Studio21最新FL水果編曲軟件中文版在哪下載?

FL Studio21水果編曲軟件是一款專業的音樂制作軟件&#xff0c;被廣泛地應用于電子音樂、hip-hop、流行樂等多種音樂類型的制作。該軟件提供了豐富的音頻編曲工具和音樂效果器&#xff0c;讓用戶可以輕松地創作出高品質的音樂作品。同時&#xff0c;這也是一款非常易于上手的軟…

[ 云計算 | Azure 實踐 ] 在 Azure 門戶中創建 VM 虛擬機并進行驗證

文章目錄 一、前言二、在 Azure Portal 中創建 VM三、驗證已創建的虛擬機資源3.1 方法一&#xff1a;在虛擬機服務中查看驗證3.1 方法二&#xff1a;在資源組服務中查看驗證 四、文末總結 一、前言 本文會開始創建新系列的專欄&#xff0c;專門更新 Azure 云實踐相關的文章。 …

7-7 求補碼

整數在內存中以二進制補碼形式存儲。對于給定的整數n&#xff0c;要求輸出其4個字節長的補碼。1個字節8個二進制位。 輸入格式: 輸入一個整數n(?231≤n≤231?1)。 輸出格式: 輸出n的補碼。 輸入樣例1: 123輸出樣例1: 00000000000000000000000001111011輸入樣例2: -12…

YOLOv8改進 | 2023檢測頭篇 | 利用AFPN改進檢測頭適配YOLOv8版(全網獨家創新)

一、本文介紹 本文給大家帶來的改進機制是利用今年新推出的AFPN&#xff08;漸近特征金字塔網絡&#xff09;來優化檢測頭&#xff0c;AFPN的核心思想是通過引入一種漸近的特征融合策略&#xff0c;將底層、高層和頂層的特征逐漸整合到目標檢測過程中。這種漸近融合方式有助于…

【react hook】ahook的useThrottleEffect 是干嘛的

import { useThrottleEffect } from ahooks;useThrottleEffect 是 React Hooks 中的一個自定義 Hook&#xff0c;用于創建具有節流效果的副作用函數。 在 React 組件中&#xff0c;副作用函數通常在組件生命周期方法中執行&#xff0c;如 componentDidMount、componentDidUpda…

軟件無線電SDR-頻譜采集python實現

sdr做的頻譜采集&#xff0c;保存的500張頻譜圖&#xff0c;能看出來是什么東西嗎&#xff1f;

VC++使用GetProcessTimes獲取進程創建時間、銷毀時間、用戶態時間、內核態時間

一、GetProcessTimes函數簡介&#xff08;微軟MSDN&#xff09; 微軟提供了一個非常有用的API函數GetProcessTimes用來獲取進程創建時間、銷毀時間、用戶態時間、內核態時間&#xff0c;msdn連接為&#xff1a;GetProcessTimes 函數 (processthreadsapi.h) 其函數原型為&#…

Linux內核--內存管理(六)補充--內核頁表及內核虛擬空間

目錄 一、引言 二、內核頁表的結構 ------>2.1、頁表項結構 ------>2.2、swapper_pg_dir ------>2.3、內核頁表布局 ------>2.4、物理/虛擬 地址轉換 ------>2.5、頁表容量及表項偏移 ------>2.6、表項掩碼及控制區域 ------>2.7、頁標志位 ---…

【測試發布】

學習目標&#xff1a; 提示&#xff1a;這里可以添加學習目標 例如&#xff1a; 一周掌握 Java 入門知識 學習內容&#xff1a; 提示&#xff1a;這里可以添加要學的內容 例如&#xff1a; 搭建 Java 開發環境掌握 Java 基本語法掌握條件語句掌握循環語句 學習時間&#x…

基于NIQE算法的圖像無參考質量評價算法matlab仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 空域NSS特征提取 4.2 圖像塊選取 4.3 MVG模型 4.4 NIQE指標 5.算法完整程序工程 1.算法運行效果圖預覽 2.算法運行軟件版本 MATLAB2022a 3.部分核心程序 clc; clear; close all; …

輕量封裝WebGPU渲染系統示例<46>- 材質組裝管線(MaterialPipeline)燈光、陰影、霧以及多Pass(源碼)

當前示例源碼github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/material/src/voxgpu/sample/MaterialPipelineMultiPasses.ts 當前示例運行效果: 此示例基于此渲染系統實現&#xff0c;當前示例TypeScript源碼如下&#xff1a; export class MaterialPipelin…

Python----內置模塊

1、什么是Python模塊 Python 模塊(Module)&#xff0c;是一個Python 文件&#xff0c;以 .py 結尾&#xff0c;包含了 Python 對象定義和Python語句。模塊能定義函數&#xff0c;類和變量&#xff0c;模塊里也能包含可執行的代碼。 2、模塊的分類 在Python中&#xff0c;模塊…

[ffmpeg] AVFrame 功能整理

背景 AVFrame 主要用來存儲編碼前的原始數據。 AVFrame 結構體 在 frame.h 文件中 主要變量 uint8_t *data[AV_NUM_DATA_POINTERS]; // 存儲每個 planes 的數據 int linesize[AV_NUM_DATA_POINTERS]; // 每一行的音視頻數據 uint8_t **extended_data; // 視頻&#xff0c;…

java實現網絡聊天

網絡聊天實現步驟&#xff08;從功能談論方法&#xff09;&#xff1a; 客戶端&#xff1a; 1.登錄面板&#xff1a;注冊提醒用戶注冊格式&#xff0c;登錄賬號密碼不為空&#xff0c;點擊登錄的時候需要連接服務器端&#xff0c;啟動聊天面板。&#xff08;監聽用戶點擊登錄…

Windows下nginx的啟動,重啟,關閉等功能bat腳本

echo off rem 提供Windows下nginx的啟動&#xff0c;重啟&#xff0c;關閉功能echo begincls ::ngxin 所在的盤符 set NGINX_PATHG:::nginx 所在目錄 set NGINX_DIRG:\projects\nginx-1.24.0\ color 0a TITLE Nginx 管理程序增強版CLSecho. echo. ** Nginx 管理程序 *** echo.…

JAVA使用HTTP代碼示例

你好&#xff0c;Java開發者們&#xff01;今天&#xff0c;我要給你們帶來一場硬核的盛宴&#xff0c;那就是在Java中使用HTTP協議進行網絡通信的代碼示例。準備好接受挑戰了嗎&#xff1f;Lets go&#xff01; 首先&#xff0c;我們需要導入一些必要的庫&#xff0c;它們將成…

C++枚舉類

枚舉 C11有作用域枚舉和無作用域枚舉 無作用域枚舉 特點 全局作用域&#xff1a;無作用域枚舉的成員&#xff08;枚舉值&#xff09;在包含它們的作用域內是直接可見的&#xff0c;不需要使用枚舉類型名稱作為前綴。 隱式類型轉換&#xff1a;無作用域枚舉的成員可以隱式地轉換…

鴻蒙開發組件之ForEach列表

一、ForEach函數 ForEach函數是一個迭代函數&#xff0c;需要傳遞兩個必須參數和一個可選參數。主要通過迭代來獲取參數arr中的數據不斷的生成單個Item來生成鴻蒙中的列表樣式 二、先創建單個的Item的UI 通過嵌套Row與Column來實現單個Item的UI。例如圖中沒有折扣的可以看成一…