国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3中狀態(tài)管理庫pinia的安裝和使用方法介紹及和vuex的區(qū)別

這篇具有很好參考價值的文章主要介紹了vue3中狀態(tài)管理庫pinia的安裝和使用方法介紹及和vuex的區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Pinia 與 Vuex 一樣,是作為 Vue 的“狀態(tài)存儲庫”,用來實現(xiàn) 跨頁面/組件 形式的數(shù)據(jù)狀態(tài)共享。它允許你跨組件或頁面共享狀態(tài)。如果你熟悉組合式 API 的話,你可能會認為可以通過一行簡單的 export const state = reactive({}) 來共享一個全局狀態(tài)。

當該數(shù)據(jù)、方法在很多地方都需要使用或需要通過頁面保存的數(shù)據(jù),如顯示在導航欄中用戶信息,一個多步驟表單頁面等,這時我們就可以使用Store了。

Pinia 的主要特點:
  • 簡單易用:Pinia 的 API 簡潔明了,易于學習和使用。它提供了一些基本的操作方法,如設置狀態(tài)、獲取狀態(tài)、刪除狀態(tài)等。
  • 適用于 Vue 3:Pinia 是專門為 Vue 3 設計的,它充分利用了 Vue 3 的新特性,如 Composition API、Teleport 等。
  • 可擴展性:Pinia 是一個可擴展的狀態(tài)管理庫,你可以根據(jù)自己的需求來添加更多的功能和操作方法。
  • 持久化支持:Pinia 支持狀態(tài)持久化,你可以輕松地將狀態(tài)保存到本地存儲中,并在需要時恢復狀態(tài)。
  • 插件化:Pinia 支持插件化,你可以通過插件來添加更多的功能,如日志記錄、狀態(tài)監(jiān)控等。
如何使用:
  • 安裝 Pinia:使用 npm 或 yarn 安裝 Pinia 庫。
  • 創(chuàng)建存儲:在 Vue 應用中創(chuàng)建一個存儲對象,用于存儲所有共享狀態(tài)。
  • 設置狀態(tài):使用 defineState 方法來定義狀態(tài),并使用 setup 方法將狀態(tài)注入到組件中。
  • 操作狀態(tài):使用 useStore 鉤子函數(shù)來獲取存儲對象,并使用其提供的方法來操作狀態(tài)。
  • 持久化狀態(tài):使用 persist 插件來將狀態(tài)保存到本地存儲中,并在需要時恢復狀態(tài)。
1.安裝
npm install pinia
2.定義
/ stores/counter.js

import { defineStore } from 'pinia'
//defineStore 接受一個 id,不同數(shù)據(jù)源的 id 必須是不同的
export const useCounterStore = defineStore('counter', {

//相當于data,數(shù)據(jù)
  state: () => {
    return { count: 0 }
  },

//相當于methods,方法
  actions: {
    increment() {
      this.count++
    },
  },

//相當于computed,計算屬性
  getters: {
      getCount(state) {
      // 自動完成!
      return state.count
    },
  },
})

在上面的代碼中,我們通過 defineStore 方法創(chuàng)建了一個名為 counter 的 Store。其中,id 是一個唯一的標識符,可以用來跨 Store 之間進行通信。

在 Store 中,我們定義了一個名為 count 的狀態(tài),以及名為 increment 的操作。這個操作可以通過 this 來訪問當前 Store 中的狀態(tài),從而實現(xiàn)對狀態(tài)的變更。

我們還定義了一個名為 getCount 的 getter,它可以返回 count 的值。

參數(shù):

  • state:狀態(tài)的初始值,推薦使用的是一個 箭頭函數(shù),方便進行類型推斷。

  • getters:狀態(tài)的獲取,是一個對象格式;推薦配置為每個 getters 的對象屬性為 箭頭函數(shù),方便進行類型推斷;在使用時等同于獲取該函數(shù)處理后的 state 狀態(tài)結果;并且與 Vue 的計算屬性一樣,該方法也是惰性的,具有緩存效果。

  • actions:類似 Vue 中的 methods 配置項,支持異步操作,主要作用是 處理業(yè)務邏輯并更新狀態(tài)數(shù)據(jù);另外,此時的 actions 是一個 函數(shù)集合對象,與 getters 不同的是 不建議使用箭頭函數(shù)。并且函數(shù)內部的 this 就指向當前 store 的 state。

3.使用

然后你在一個組件中使用它:

import { useCounterStore } from '@/stores/counter'

const counter = useCounterStore()

counter.count++

// 或使用 action

counter.increment()

<template>
{{counter.getCount}}
</template>

在上面的代碼中,我們通過 useCounterStore 方法獲取到了 useCounterStore Store 的實例。然后我們可以通過 counter.count 訪問到當前 Store 中的狀態(tài),以及通過 counter.increment()counter.getCount() 來調用相應的操作。文章來源地址http://www.zghlxwxcb.cn/news/detail-809274.html

pinia和vuex的對比
特性 Vuex (Vue2) Pinia (Vue3)
數(shù)據(jù)存儲 State 存儲在 Store 中 State 存儲在 Store 中
數(shù)據(jù)修改 commit/mutation action
響應式 使用 Vue 響應式系統(tǒng)實 使用 Vue 3 的響應式系統(tǒng)實現(xiàn)
數(shù)據(jù)獲取 getters getters
模塊化 模塊按照功能劃分,每個模塊有自己的 state、mutation、action 和 getter 模塊按照功能劃分,每個模塊有自己的 state、action 和 getter
TypeScript 支持 需要額外安裝 @vue/cli-plugin-typescript 插件,并在 store 中進行類型定義 內置 TypeScript 支持,使用起來更加方便

到了這里,關于vue3中狀態(tài)管理庫pinia的安裝和使用方法介紹及和vuex的區(qū)別的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Vue3狀態(tài)管理庫Pinia——自定義持久化插件

    Vue3狀態(tài)管理庫Pinia——自定義持久化插件

    個人簡介 ?? 個人主頁: 前端雜貨鋪 ???♂? 學習方向: 主攻前端方向,正逐漸往全干發(fā)展 ?? 個人狀態(tài): 研發(fā)工程師,現(xiàn)效力于中國工業(yè)軟件事業(yè) ?? 人生格言: 積跬步至千里,積小流成江海 ?? 推薦學習:??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/3項目實戰(zhàn) ??Node.js??

    2024年02月13日
    瀏覽(28)
  • vue2(Vuex)、vue3(Pinia)、react(Redux)狀態(tài)管理

    vue2(Vuex)、vue3(Pinia)、react(Redux)狀態(tài)管理

    Vuex 是一個專為 Vue.js應用程序開發(fā)的狀態(tài)管理模式。它使用集中式存儲管理應用的所有組件的狀態(tài),以及規(guī)則保證狀態(tài)只能按照規(guī)定的方式進行修改。 State(狀態(tài)) :Vuex 使用單一狀態(tài)樹,即一個對象包含全部的應用層級狀態(tài)。這個狀態(tài)樹對應著一個應用中的所有狀態(tài)。 Gett

    2024年01月23日
    瀏覽(26)
  • Vite4+Typescript+Vue3+Pinia 從零搭建(6) - 狀態(tài)管理pina

    Vite4+Typescript+Vue3+Pinia 從零搭建(6) - 狀態(tài)管理pina

    項目代碼同步至碼云 weiz-vue3-template pina 是 vue3 官方推薦的狀態(tài)管理庫,由 Vue 核心團隊維護,旨在替代 vuex。pina 的更多介紹,可從 pina官網(wǎng) 查看 更簡潔直接的 API,提供組合式風格的 API 支持模塊熱更新和服務端渲染 對TS支持更為友好 src目錄下新建store文件夾,并新建index.t

    2024年02月05日
    瀏覽(22)
  • 從零開始Vue3+Element Plus后臺管理系統(tǒng)(六)——狀態(tài)管理Pinia和持久化

    從零開始Vue3+Element Plus后臺管理系統(tǒng)(六)——狀態(tài)管理Pinia和持久化

    官網(wǎng):https://pinia.vuejs.org/zh/ Pinia 是 Vue 的專屬狀態(tài)管理庫,相比Vuex更好用,優(yōu)點不多了說官網(wǎng)有,用起來最重要! 在應用的根部注入創(chuàng)建的 pinia 定義store,拿用戶登錄舉個簡單例子 在src目錄新建文件夾store,然后新建文件user.ts 在Vue頁面中使用Pinia 如果我們把登錄用戶的信息

    2024年02月05日
    瀏覽(49)
  • electron+vue3全家桶+vite項目搭建【16.1】electron多窗口,pinia狀態(tài)同步,擴展store方法,主動同步pinia的狀態(tài)【推薦】

    electron+vue3全家桶+vite項目搭建【16.1】electron多窗口,pinia狀態(tài)同步,擴展store方法,主動同步pinia的狀態(tài)【推薦】

    demo項目地址 我們之前寫了一個自動同步pinia狀態(tài)的插件,可以參考如下文章 electron+vue3全家桶+vite項目搭建【16】electron多窗口,pinia狀態(tài)無法同步更新問題解決 這里面有一個較大的弊端,就是pinia中的store,只要其中的某個屬性修改,就會觸發(fā)這個store的全量更新,當我們有一

    2024年02月11日
    瀏覽(137)
  • Vue使用 Pinia 進行狀態(tài)管理

    Pinia 是一個適用于 Vue.js 的狀態(tài)管理庫,它采用了組合式 API 的理念,使得狀態(tài)管理變得更加簡單、直觀和靈活。與傳統(tǒng)的 Vuex 相比,Pinia 提供了更好的 TypeScript 支持,同時也更加適合大型應用程序和復雜狀態(tài)邏輯的管理。 首先,我們需要在 Vue 項目中安裝 Pinia。你可以通過

    2024年02月13日
    瀏覽(36)
  • Vue3+Vite+Pinia+Naive后臺管理系統(tǒng)搭建之四:Naive UI 組件庫的安裝和使用

    Vue3+Vite+Pinia+Naive后臺管理系統(tǒng)搭建之四:Naive UI 組件庫的安裝和使用

    前言 如果對 vue3 的語法不熟悉的,可以移步?Vue3.0 基礎入門Vue3.0 基礎入門快速入門。 UI 組件請參考官網(wǎng):Naive Ui 官網(wǎng) 為什么選擇 naive ui 不繼續(xù)用 element ui,因為尤大大推薦,可以嘗試下,而且 naive ui 更貼近 vue3 的語法,當然易上手還是element ui 好一點。 github 開源庫:Vue

    2024年02月07日
    瀏覽(128)
  • vue 全局狀態(tài)管理(簡單的store模式、使用Pinia)

    vue 全局狀態(tài)管理(簡單的store模式、使用Pinia)

    多個組件可能會依賴同一個狀態(tài)時,我們有必要抽取出組件內的共同狀態(tài)集中統(tǒng)一管理,存放在一個全局單例中,這樣任何位置上的組件都可以訪問其中的狀態(tài)或觸發(fā)動作 通過自定義一個store模式實現(xiàn)全局的狀態(tài)管理,實例如下 有兩個組件a、b共享store和store2兩個狀態(tài),我們

    2024年02月13日
    瀏覽(21)
  • 前端開發(fā)小技巧 - 【Vue3 + TS】 - 在 TS + Vue3 中使用 Pinia,實現(xiàn) Pinia 的持久化,優(yōu)化Pinia(倉庫統(tǒng)一管理)

    前端開發(fā)小技巧 - 【Vue3 + TS】 - 在 TS + Vue3 中使用 Pinia,實現(xiàn) Pinia 的持久化,優(yōu)化Pinia(倉庫統(tǒng)一管理)

    ts 中使用 pinia 和 Vue3 基本一致,唯一的不同點在于,需要根據(jù)接口文檔給 state 標注類型,也要給 actions 標注類型; 以下都是 組合式API 的寫法, 選項式API 的寫法大家可以去官網(wǎng)看看; Pinia; 持久化插件 - pinia-plugin-persistedstate; 目標文件: src/types/user.d.ts (這里以 user.d.t

    2024年04月09日
    瀏覽(30)
  • Vue中的Pinia狀態(tài)管理工具 | 一篇文章教會你全部使用細節(jié)

    Vue中的Pinia狀態(tài)管理工具 | 一篇文章教會你全部使用細節(jié)

    Pinia(發(fā)音為/pi?nj?/,如英語中的“peenya”)是最接近pi?a(西班牙語中的菠蘿)的詞 ; Pinia開始于大概2019年,最初是 作為一個實驗為Vue重新設計狀態(tài)管理 ,讓它用起來適合組合式API(Composition API)。 從那時到現(xiàn)在,最初的設計原則依然是相同的,并且目前同時兼容Vue2、

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包