最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3中vuex與pinia的踩坑筆記記錄

 更新時(shí)間:2021年12月20日 10:42:35   作者:接口500  
Vuex是一個(gè)專為Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式,它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化,這篇文章主要給大家介紹了關(guān)于vue3中vuex與pinia踩坑的相關(guān)資料,需要的朋友可以參考下

介紹

Pinia 是 Vue.js 的輕量級(jí)狀態(tài)管理庫(kù),最近很受歡迎。它使用 Vue 3 中的新反應(yīng)系統(tǒng)來(lái)構(gòu)建一個(gè)直觀且完全類型化的狀態(tài)管理庫(kù)。

Pinia的成功可以歸功于其管理存儲(chǔ)數(shù)據(jù)的獨(dú)特功能(可擴(kuò)展性、存儲(chǔ)模塊組織、狀態(tài)變化分組、多存儲(chǔ)創(chuàng)建等)。

另一方面,Vuex也是為Vue框架建立的一個(gè)流行的狀態(tài)管理庫(kù),它也是Vue核心團(tuán)隊(duì)推薦的狀態(tài)管理庫(kù)。Vuex高度關(guān)注應(yīng)用程序的可擴(kuò)展性、開發(fā)人員的工效和信心。它基于與Redux相同的流量架構(gòu)。

安裝使用

安裝 vuex

npm install vuex@next --save

cnpm install vuex@next --save-

yarn add vuex@next --save

安裝 pinia

npm install pinia@next

cnpm install pinia@next

yarn add pinia@next

裝完直接根據(jù)下面的寫法來(lái)用就行了,只要你會(huì)用 vuex,你就等于你會(huì)用 pinia 的基本用法了,這邊不展示 pinia 的插件寫法

簡(jiǎn)單對(duì)比寫法差異與共同點(diǎn)

vuex 和 pinia 是同團(tuán)隊(duì)成員編寫,但是 pinia 寫法上更加人性化,也更簡(jiǎn)單

vuex在vue3中的寫法和用法

// store.js
import { createStore } from 'vuex'

export default createStore({
    // 定義數(shù)據(jù)
    state: { a:1 },
    // 定義方法
    mutations: {
        xxx(state,number){
            state.a = number
        }
    },
    // 異步方法
    actions: { },
    // 獲取數(shù)據(jù)
    getters: { getA:state=>return state.a }
})

// 在vue3中使用
<template>
    <div>
        {{number}}
        <button @click="clickHandle">按鈕</button>
    </div>
</template>
<script>
import {useStore} from "vuex"
export default {
    setup(){
        let store = useStore()
        // ??? 如果直接取state的值必須使用computed才能實(shí)現(xiàn)數(shù)據(jù)的響應(yīng)式 如果直接取 store.state.a 則不會(huì)監(jiān)聽(tīng)到數(shù)據(jù)的變化,或者使用getter,就可以不使用computed
        let number = computed(()=>store.state.a)
        const clickHandle = () => {
            store.commit("xxx","100")
        }
        return{number,clickHandle}
    }
}
<script>

pinia在vue3中的寫法和用法

// store.js
import { defineStore } from 'pinia'

// defineStore 調(diào)用后返回一個(gè)函數(shù),調(diào)用該函數(shù)獲得 Store 實(shí)體
export const GlobalStore = defineStore({
  // id: 必須的,在所有 Store 中唯一
  id: "myGlobalState",
  // state: 返回對(duì)象的函數(shù)
  state: () => ({
    a: 1,
  }),
  getters: {},
  actions: {
    setXXX(number) {
      this.a = number;
    },
  },
});

// 在vue3中使用
<template>
    <div>
        {{number}}
        <button @click="clickHandle">按鈕</button>
    </div>
</template>
<script>
import {GlobalStore} from "@/store/store.js"
export default {
    setup(){
        let store = GlobalStore();
        // ??? 如果直接取state的值必須使用computed才能實(shí)現(xiàn)數(shù)據(jù)的響應(yīng)式 如果直接取 store.state.a 則不會(huì)監(jiān)聽(tīng)到數(shù)據(jù)的變化,或者使用getter,就可以不使用computed (這邊和vuex是一樣的)
        let number = computed(()=>store.a)
        const clickHandle = () => {
            store.setXXX("100")
        }
        return{number,clickHandle}
    }
}
<script>

由此兩個(gè)代碼的對(duì)比我們可以看出使用 pinia 更加的簡(jiǎn)潔,輕便。pinia 取消了原有的 mutations,合并成了 actions,且我們?cè)谌≈档臅r(shí)候可以直接點(diǎn)到那個(gè)值,而不需要在.state,方法也是如此。

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

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

  • 支持調(diào)試功能,如時(shí)間旅行和編輯
  • 適用于大型、高復(fù)雜度的Vue.js項(xiàng)目

Vuex的缺點(diǎn)

  • 從 Vue 3 開始,getter 的結(jié)果不會(huì)像計(jì)算屬性那樣緩存
  • Vuex 4有一些與類型安全相關(guān)的問(wèn)題

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

  • 完整的 TypeScript 支持:與在 Vuex 中添加 TypeScript 相比,添加 TypeScript 更容易
  • 極其輕巧(體積約 1KB)
  • store 的 action 被調(diào)度為常規(guī)的函數(shù)調(diào)用,而不是使用 dispatch 方法或 MapAction 輔助函數(shù),這在 Vuex 中很常見(jiàn)
  • 支持多個(gè)Store
  • 支持 Vue devtools、SSR 和 webpack 代碼拆分

Pinia的缺點(diǎn)

  • 不支持時(shí)間旅行和編輯等調(diào)試功能

何時(shí)使用Pinia,何時(shí)使用Vuex

根據(jù)我的個(gè)人經(jīng)驗(yàn),由于Pinea是輕量級(jí)的,體積很小,它適合于中小型應(yīng)用。它也適用于低復(fù)雜度的Vue.js項(xiàng)目,因?yàn)橐恍┱{(diào)試功能,如時(shí)間旅行和編輯仍然不被支持。

將 Vuex 用于中小型 Vue.js 項(xiàng)目是過(guò)度的,因?yàn)樗亓考?jí)的,對(duì)性能降低有很大影響。因此,Vuex 適用于大規(guī)模、高復(fù)雜度的 Vue.js 項(xiàng)目。

總結(jié)

到此這篇關(guān)于vue3中vuex與pinia踩坑的文章就介紹到這了,更多相關(guān)vue3 vuex與pinia踩坑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3中實(shí)現(xiàn)拖拽和縮放自定義看板 vue-grid-layout的方法

    Vue3中實(shí)現(xiàn)拖拽和縮放自定義看板 vue-grid-layout的方法

    這篇文章主要介紹了Vue3中實(shí)現(xiàn)拖拽和縮放自定義看板 vue-grid-layout的方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • vue3搭配pinia的踩坑實(shí)戰(zhàn)記錄

    vue3搭配pinia的踩坑實(shí)戰(zhàn)記錄

    Pinia是一個(gè)同時(shí)支持Vue2和Vue3的應(yīng)用狀態(tài)管理工具,簡(jiǎn)單來(lái)說(shuō)就是為了管理整個(gè)應(yīng)用中的響應(yīng)式數(shù)據(jù),解決各個(gè)組件交互時(shí)數(shù)據(jù)狀態(tài)的不好管理的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于vue3搭配pinia踩坑的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 詳解Vue3 Composition API中的提取和重用邏輯

    詳解Vue3 Composition API中的提取和重用邏輯

    這篇文章主要介紹了Vue3 Composition API中的提取和重用邏輯,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Electron集成React和Vue流程方法講解

    Electron集成React和Vue流程方法講解

    Electron也可以快速地將你的網(wǎng)站打包成一個(gè)原生應(yīng)用發(fā)布,下面這篇文章主要給大家介紹了關(guān)于Electron集成React和Vue的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • vue 獲取攝像頭拍照并旋轉(zhuǎn)、裁剪生成新的圖片功能實(shí)現(xiàn)

    vue 獲取攝像頭拍照并旋轉(zhuǎn)、裁剪生成新的圖片功能實(shí)現(xiàn)

    本文給大家介紹vue 獲取攝像頭拍照并旋轉(zhuǎn)、裁剪生成新的圖片功能實(shí)現(xiàn),主要步驟包括初始化、獲取攝像頭權(quán)限、切換攝像頭、拍照以及對(duì)圖片進(jìn)行旋轉(zhuǎn)和裁剪,同時(shí)提到了使用opencv.js和cropperjs進(jìn)行自動(dòng)裁剪和手動(dòng)裁剪的實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • electron + vue項(xiàng)目實(shí)現(xiàn)打印小票功能及實(shí)現(xiàn)代碼

    electron + vue項(xiàng)目實(shí)現(xiàn)打印小票功能及實(shí)現(xiàn)代碼

    這篇文章主要介紹了electron + vue項(xiàng)目實(shí)現(xiàn)打印小票功能,需要的朋友可以參考下
    2018-11-11
  • vue之webpack -v報(bào)錯(cuò)解決方案總結(jié)

    vue之webpack -v報(bào)錯(cuò)解決方案總結(jié)

    這篇文章主要介紹了vue之webpack -v報(bào)錯(cuò)解決方案總結(jié),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Vue+element使用row-class-name修改el-table某一行解決背景色無(wú)效的方法

    Vue+element使用row-class-name修改el-table某一行解決背景色無(wú)效的方法

    本文主要介紹了Vue+element使用row-class-name修改el-table某一行解決背景色無(wú)效的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • vue實(shí)現(xiàn)瀑布流布局的示例代碼

    vue實(shí)現(xiàn)瀑布流布局的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用vue實(shí)現(xiàn)簡(jiǎn)單的瀑布流布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-09-09
  • 淺析Vue 防抖與節(jié)流的使用

    淺析Vue 防抖與節(jié)流的使用

    防抖節(jié)流就是使用定時(shí)器 來(lái)實(shí)現(xiàn)我們的目的。這篇文章通過(guò)實(shí)例代碼給大家介紹vue防抖與節(jié)流的使用,感興趣的朋友跟隨小編一起看看吧
    2019-11-11

最新評(píng)論

凤庆县| 蓬溪县| 长乐市| 云浮市| 两当县| 行唐县| 肃宁县| 永泰县| 增城市| 翁源县| 泗水县| 红河县| 景德镇市| 柳林县| 滁州市| 增城市| 临安市| 五常市| 黑山县| 台北市| 开平市| 霍林郭勒市| 华蓥市| 临安市| 外汇| 平和县| 乌兰浩特市| 绍兴市| 措美县| 罗山县| 丰台区| 镇宁| 浦北县| 通辽市| 溆浦县| 乳源| 沅江市| 博野县| 内黄县| 神农架林区| 山阴县|