成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么有些 Vue3 項目已經開始棄用 Pinia 了?

開發 前端
最近在想一個問題:在 Vue3 項目中,進行狀態管理的時候,我們真的需要 Pinia 嗎?其實我們可以反過來想一個問題:沒有 Pinia,我們能做狀態管理嗎?

真的需要 Pinia 嗎?

最近在想一個問題:在 Vue3 項目中,進行狀態管理的時候,我們真的需要 Pinia 嗎?

其實我們可以反過來想一個問題:沒有 Pinia,我們能做狀態管理嗎?

答案是:可以?。。?/p>

ref、reactive

Vue3 的一些 API 對比 React 的好處就是,這些 API 并不一定需要在組件中去聲明。

就比如你想要做局部狀態管理的時候,可以直接使用 reactive、ref 這類 API 來完成。

圖片圖片

圖片圖片

圖片圖片

這樣能達到局部狀態管理,多組件共用同一個狀態的效果,請看下圖:

圖片圖片

effectScope

Vue3 有一個超級冷門的 API 叫 effectScope ,這個 API 非常強大,但是很多人都不知道它。

當然,既然很少人知道它,那自然就很少人知道,Pinia 的底層原理就是依賴了 effectScope。

圖片圖片

既然 Pinia 是通過effectScope來實現的,那么,我們自然也可以直接使用這個 API 來做狀態管理!

其實已經有人做過這件事了,就比如 vueuse 中的。

圖片圖片

我們可以直接用這個 Hooks 來進行狀態管理,如果是使用 effectScope 來進行管理的話,狀態就不需要寫在 Hooks 外部了,因為 effectScope 內部邏輯只會執行一次,無論你調用多少次。

圖片圖片

圖片圖片

圖片圖片

利用 effectScope 也能達到組件之間共享狀態!

圖片圖片

那還需要 Pinia 嗎?

結構分明

我覺得 Pinia 還是有他的好處的,好處就是:讓我們少寫一些代碼,并且代碼更加分明。

比如下面這個例子:

  • state: 定義狀態
  • getter: 定義計算變量
  • action: 定義修改方法

結構很分明:

圖片圖片

監聽 state

Pinia 還提供了 $subscribe 來監聽整個狀態,我們也可以利用這個方法來做持久化存儲。

圖片

插件機制

Pinia 提供了插件機制,可以讓你去拓展 Pinia 的功能,以下是你可以擴展的內容:

  • 為 store 添加新的屬性
  • 定義 store 時增加新的選項
  • 為 store 增加新的方法
  • 包裝現有的方法
  • 改變甚至取消 action
  • 實現副作用,如本地存儲
  • 僅應用插件于特定 store

比如舉個小例子,給所有狀態管理都加一個屬性變量。

圖片

Pinia 著名的持久化插件pinia-plugin-persistedstate就是利用了 Pinia 的插件機制。

圖片

他的核心代碼其實很少,就是利用插件機制,使用$subscribe去監聽每一個狀態管理的變化,然后進行持久化存儲!

圖片 圖片

責任編輯:武曉燕 來源: 前端之神
相關推薦

2024-04-02 08:50:08

Go語言react

2021-08-23 13:25:25

Vue3CSS前端

2021-01-20 14:25:53

Vue3CSS前端

2025-03-26 10:29:22

Vue3前端API

2025-02-18 08:10:00

Vue 3JavaScrip開發

2025-06-06 08:49:10

Vue3項目Pinia

2022-02-22 07:37:26

VuePinia態管理庫

2025-05-21 09:47:57

2024-03-01 11:32:22

Vue3APIVue.js

2022-03-24 20:42:19

Vue3API 設計Vue

2022-03-07 11:15:25

Pinia狀態庫vue3

2021-12-16 08:47:56

Vue3 插件Vue應用

2024-04-08 07:28:27

PiniaVue3狀態管理庫

2021-06-04 05:21:19

KubernetesDocker容器

2024-06-27 13:45:21

2020-05-15 08:30:25

前端開發工具

2018-09-10 15:40:46

GitHubQuery前端

2024-04-10 08:27:32

PiniaVue3持久化插件

2024-10-17 14:14:29

2023-05-17 08:20:34

Java 17編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩在线免费观看 | 久色网 | 有码一区 | 日日日视频 | 日韩国产中文字幕 | 久久精品国产99国产 | 欧美一级在线观看 | 在线观看黄色电影 | 天天综合日日夜夜 | 精品国产视频 | 中文字幕一区二区三区在线观看 | 日本成人在线观看网站 | 大陆一级毛片免费视频观看 | 第四色狠狠 | 91九色视频| 国产精品久久久久久久久久99 | 亚洲视屏| 亚洲97| 中文成人无字幕乱码精品 | 精品日韩 | 亚洲永久精品国产 | 国产色播av在线 | 91麻豆产精品久久久久久 | 精品久久久久一区二区国产 | 2021狠狠天天天 | 伊人伊成久久人综合网站 | 成人av一区 | 妞干网福利视频 | 成人久久久| 国产免费一区二区三区最新6 | 国产一级视频在线 | 久久99精品视频 | 国产精品久久久久久久7777 | 久久久91 | 日韩三级电影在线看 | 亚洲精品1 | 精品一区二区在线视频 | 在线播放中文字幕 | 亚洲男人的天堂网站 | 亚洲欧美日韩在线不卡 | 亚洲成人免费视频 |