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

vue中使用Pinia和Vuex詳解

這篇具有很好參考價(jià)值的文章主要介紹了vue中使用Pinia和Vuex詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

最具有爭(zhēng)議的Pinia和Vuex那個(gè)更好?

我們使用Vue2的時(shí)候,Vuex作為一個(gè)狀態(tài)管理工具在組件中使用方便了很多。Vue3推出后,雖然相對(duì)于Vue2很多東西都變了,但是核心的東西還是沒有變的,比如說狀態(tài)管理、路由等等。實(shí)際上,pinia就是Vuex的升級(jí)版,官網(wǎng)也說過,為了尊重原作者,所以取名pinia,而沒有取名Vuex,所以大家可以直接將pinia比作為Vue3的Vuex。

以上可以看出 pinia更適合于Vue3中作為狀態(tài)管理
vue中使用Pinia和Vuex詳解,JavaScript,vue.js,前端,javascript

Pinia的優(yōu)點(diǎn)

  • pinia中只有state、getter、action,拋棄了Vuex中的Mutation
  • pinia中action支持同步和異步,Vuex不支持
  • Typescript支持,畢竟我們Vue3都推薦使用TS來編寫
  • 體積小,1KB左右。
  • pinia支持插件來擴(kuò)展自身功能。
  • 可以服務(wù)端渲染。
    以上來看對(duì)于 Pinia的概念,state、getters 和 actions 并且可以安全地假設(shè)這些概念等同于組件中的“數(shù)據(jù)”、“計(jì)算”和“方法”。

那么什么時(shí)候該用到Pinia呢

存儲(chǔ)應(yīng)該包含可以在整個(gè)應(yīng)用程序中訪問的數(shù)據(jù)。這包括在許多地方使用的數(shù)據(jù),例如導(dǎo)航欄中顯示的用戶信息,以及需要通過頁面保留的數(shù)據(jù),例如一個(gè)非常復(fù)雜的多步驟表格。
簡(jiǎn)單的理解就是 當(dāng)我們需要在項(xiàng)目中需要全局管理一下數(shù)據(jù)就可以考慮使用
vue3+TS 更使用于使用pinia

使用Pinia

1.安裝

yarn add pinia
# 或者使用 npm
npm install pinia

2.創(chuàng)建一個(gè) pinia(根存儲(chǔ))并將其傳遞給應(yīng)用程序:
一般是在 stores文件里
億點(diǎn)小知識(shí):如果使用 Vue 2,還需要安裝組合 API:@vue/composition-api

import { createPinia } from "pinia";
import piniaPluginPersistedstate from "pinia-plugin-persistedstate";
const pinia = createPinia();
pinia.use(piniaPluginPersistedstate);

export default pinia;

3.在main.js中引入pinia

import pinia from "@/stores";
app.use(pinia).mount("#app");

4.持久化策略 這個(gè)如果不需要也不可以不設(shè)置

import { PersistedStateOptions } from "pinia-plugin-persistedstate";

/**
 * @description pinia 持久化參數(shù)配置
 * @param {String} key 存儲(chǔ)到持久化的 name
 * @param {Array} paths 需要持久化的 state name
 * @return persist
 * */
const piniaPersistConfig = (key: string, paths?: string[]) => {
  const persist: PersistedStateOptions = {
    key,
    storage: localStorage,
    // storage: sessionStorage,
    paths
  };
  return persist;
};

export default piniaPersistConfig;

5.在stores中創(chuàng)建一個(gè)modules 用來區(qū)分

import { defineStore } from "pinia";
import { GlobalState } from "@/stores/interface";// TS 規(guī)范
import piniaPersistConfig from "@/config/piniaPersist";
export const useGlobalStore = defineStore({
  id: "geeker-global",
  // 修改默認(rèn)值之后,需清除 localStorage 數(shù)據(jù)
  state: (): GlobalState => ({
    // 面包屑導(dǎo)航
    breadcrumb: true,
    // 面包屑導(dǎo)航圖標(biāo)
    breadcrumbIcon: true,
    // 標(biāo)簽頁
    tabs: true,
    // 標(biāo)簽頁圖標(biāo)
    tabsIcon: true,
    // 頁腳
    footer: true
  }),
  getters: {},
  actions: {
    // Set GlobalState
    setGlobalState(...args: ObjToKeyValArray<GlobalState>) {
      this.$patch({ [args[0]]: args[1] });
    }
  },
  persist: piniaPersistConfig("geeker-global") // 持久化處理
});

以上就是簡(jiǎn)單的使用 Pinia狀態(tài)管理了
vue中使用Pinia和Vuex詳解,JavaScript,vue.js,前端,javascript
以上就是Pinia和Vuex詳解感謝大家的閱讀
如碰到其他的問題 可以私下我 一起探討學(xué)習(xí)
如果對(duì)你有所幫助還請(qǐng) 點(diǎn)贊 收藏謝謝~!
關(guān)注收藏博客 作者會(huì)持續(xù)更新…文章來源地址http://www.zghlxwxcb.cn/news/detail-560868.html

到了這里,關(guān)于vue中使用Pinia和Vuex詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • jQuery.js - 前端必備的Javascript庫

    jQuery.js - 前端必備的Javascript庫

    作者: WangMin 格言: 努力做好自己喜歡的每一件事 jQuery.js 是什么? jQuery是一個(gè)快速簡(jiǎn)潔、免費(fèi)開源易用的JavaScript框架, 倡導(dǎo)寫更少的代碼,做更多的事情 。它封裝JavaScript常用的功能代碼,提供了一種簡(jiǎn)便的JavaScript設(shè)計(jì)模式,以及我們開發(fā)中常用到的操作DOM的API,優(yōu)化HTML文

    2024年02月05日
    瀏覽(90)
  • vue:狀態(tài)管理庫及其部分原理(Vuex、Pinia)

    多組件的狀態(tài)共享問題: 當(dāng)多個(gè)組件需要訪問和修改相同的數(shù)據(jù)時(shí),我們需要在組件之間傳遞 props或者使用事件總線。當(dāng),應(yīng)用就會(huì)變得難以維護(hù)和調(diào)試。 多組件狀態(tài)同步問題: 當(dāng)一個(gè)組件修改了狀態(tài),其他組件可能無法立即得知該變化。 狀態(tài)變更的追蹤問題: 無法追蹤

    2024年01月19日
    瀏覽(30)
  • 使用JavaScript和Vue.js框架開發(fā)的電子商務(wù)網(wǎng)站,實(shí)現(xiàn)商品展示和購物車功能

    引言: 隨著互聯(lián)網(wǎng)的快速發(fā)展和智能手機(jī)的普及,電子商務(wù)行業(yè)正迎來一個(gè)全新的時(shí)代。越來越多的消費(fèi)者選擇網(wǎng)上購物,而不再局限于傳統(tǒng)的實(shí)體店。這種趨勢(shì)不僅僅是改變了消費(fèi)者的習(xí)慣購物,也給企業(yè)帶來了巨大的商機(jī)。為了不斷滿足消費(fèi)者的需求,電子商務(wù)網(wǎng)站需要

    2024年02月15日
    瀏覽(26)
  • web前端框架JS學(xué)習(xí)之JavaScript類型轉(zhuǎn)換

    web前端框架JS學(xué)習(xí)之JavaScript類型轉(zhuǎn)換

    vascript有多種數(shù)據(jù)類型,如字符串、數(shù)字、布爾等,可以通過typeof語句來查看變量的數(shù)據(jù)類型。數(shù)據(jù)類型轉(zhuǎn)換就是數(shù)據(jù)類型之間相互轉(zhuǎn)換,比如把數(shù)字轉(zhuǎn)成字符串、把布爾值轉(zhuǎn)成字符串、把字符串轉(zhuǎn)成數(shù)字等,這在工作也是經(jīng)常碰到的。 本期我們就給大家說說web前端框架JS學(xué)

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

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

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

    2024年01月23日
    瀏覽(27)
  • JavaScript - 判斷當(dāng)前時(shí)間是否在指定區(qū)間內(nèi),例如:9:00~12:00(檢查當(dāng)前時(shí)間是否處于規(guī)定的兩個(gè)時(shí)間段范圍內(nèi)),適用于 vue.js / uniapp / 微信小程序等前端項(xiàng)目

    例如,您想知道當(dāng)前時(shí)間是否處于 9:00 ~ 12:00 時(shí)間區(qū)間內(nèi),然后根據(jù)這個(gè)判斷進(jìn)而實(shí)現(xiàn)業(yè)務(wù)邏輯。 如下示例所示, 本文提供一個(gè)函數(shù),您只需要傳入 2 個(gè)時(shí)間區(qū)間,便可得出當(dāng)前時(shí)間是否在該時(shí)間區(qū)間范圍內(nèi): 您可以一鍵復(fù)制,直接粘貼到您的項(xiàng)目中。 您只需要傳入開始時(shí)

    2024年02月16日
    瀏覽(51)
  • 拋棄Vuex,使用Pinia

    拋棄Vuex,使用Pinia

    1.簡(jiǎn)介 官網(wǎng) Pinia 起始于 2019 年 11 月左右的一次實(shí)驗(yàn),其目的是設(shè)計(jì)一個(gè)擁有組合式 API 的 Vue 狀態(tài)管理庫。從那時(shí)起,我們就傾向于同時(shí)支持 Vue 2 和 Vue 3,并且不強(qiáng)制要求開發(fā)者使用組合式 API,我們的初心至今沒有改變。除了 安裝 和 SSR 兩章之外,其余章節(jié)中提到的 API 均

    2024年02月06日
    瀏覽(16)
  • Vue3 store倉庫數(shù)據(jù)間流轉(zhuǎn) Vuex4 + Pinia

    上文 講了vue2數(shù)據(jù)流轉(zhuǎn)處理的方法 這文講講vue3 Vuex 在 Vue 3 中 可以使用 Vuex 4 來進(jìn)行狀態(tài)管理和存取數(shù)據(jù)。 1 創(chuàng)建一個(gè) store 實(shí)例 2 在 main.js 中引入并掛載 store: 3 在組件中訪問和修改數(shù)據(jù): *** 在 Vue 3 中使用 Vuex 進(jìn)行數(shù)據(jù)的存取和修改。state 存儲(chǔ)數(shù)據(jù),mutations 修改數(shù)據(jù),ac

    2024年02月14日
    瀏覽(18)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    當(dāng)前子專欄 基礎(chǔ)入門三大核心篇 是免費(fèi)開放階段 。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi)開放 , 購買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過訂閱\\\"白寶書系列專

    2024年02月04日
    瀏覽(23)
  • 【前端|Javascript第5篇】全網(wǎng)最詳細(xì)的JS的內(nèi)置對(duì)象文章!

    【前端|Javascript第5篇】全網(wǎng)最詳細(xì)的JS的內(nèi)置對(duì)象文章!

    前言 在當(dāng)今數(shù)字時(shí)代,前端技術(shù)正日益成為塑造用戶體驗(yàn)的關(guān)鍵。我們?cè)陂_發(fā)中需要用到很多js的內(nèi)置對(duì)象的一些屬性來幫助我們更快速的進(jìn)行開發(fā)?;蛟S你是剛踏入前端領(lǐng)域的小白,或者是希望深入了解內(nèi)置對(duì)象的開發(fā)者,不論你的經(jīng)驗(yàn)如何,本篇博客都將給你詳細(xì)的講解

    2024年02月12日
    瀏覽(57)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包