千鋒教育前端Vue3.0全套視頻教程(Kerwin2023版,Vue.js零基礎(chǔ)

關(guān)于pinia
Pinia是Vue.js的狀態(tài)管理庫。 與Vuex相比,Pinia更加輕量級(jí)且易于使用。Pinia支持模塊化的狀態(tài)管理,允許開發(fā)者將store倉庫劃分為多個(gè)模塊, 每個(gè)開發(fā)者可以單獨(dú)維護(hù)自己的模塊,這種模塊化的狀態(tài)管理使得開發(fā)大型應(yīng)用程序更加方便和可維護(hù)
pinia使用 :
一:在項(xiàng)目入口文件:
??第一步: 下載pinia?npm i pinia
??第二步: 在項(xiàng)目入口文件從pinia導(dǎo)入createStore方法??
??????????import { createStore } from 'pinia'
??第三步: 調(diào)用這個(gè)方法獲得實(shí)例?let pinia = createStore()
??第四步: 項(xiàng)目入口文件使用pinia注冊(cè)pinia插件?app.use(createPinia())
??
二:創(chuàng)建倉庫:
??2.1:option Store:
???1:創(chuàng)建store文件夾,創(chuàng)建mystore文件
????導(dǎo)入 import { defineStore } from 'pinia'
?????//第一個(gè)參數(shù)mystore是唯一值 不可與其他store名字沖突
????let usemystore = defineStore('mystore',{
????})
????actions 可以是同步的或異步的,默認(rèn)情況下,Pinia 的 actions 是同步的。
????處理異步操作可以在 action 內(nèi)使用 async/await、Promises 或其他異步處理方法
????計(jì)算屬性getter 直接store.方法名 進(jìn)行調(diào)用
?2.2:setup Store:
????????第二個(gè)參數(shù)傳遞回調(diào)函數(shù)
????????回調(diào)函數(shù)內(nèi)
????????????ref 定義的就是狀態(tài)??-------?類似于 vuex4.0 中的 state
????????????直接定義一個(gè)函數(shù) 用于修改狀態(tài) ----- 類似于 vuex4.0 中的 actions
????????????計(jì)算屬性 從vue導(dǎo)入computed屬性來創(chuàng)建一個(gè)計(jì)算屬性?omputed(()=>{})
????????????最后將狀態(tài) 和函數(shù) return 出去即可使用
????????其他沒有區(qū)別
?三:?修改pinia里的state:
???1:直接修改狀態(tài): Store 中的 state 是響應(yīng)式的?
???????所以可以直接訪問和修改 store.變量=新的值
???????直接修改狀態(tài)可能會(huì)破壞單向數(shù)據(jù)流和追蹤狀態(tài)變化的能力,
???????因此不推薦在大型應(yīng)用中頻繁使用。
???2: 放在方法中 可以使用補(bǔ)丁patch
????把這個(gè)對(duì)象合并到state里的對(duì)象同名進(jìn)行覆蓋完成修改
????store.$patch({
?????str:''
????})
???3: 重置 state里的值
????store.$reset({
?????str:''
????})
???4:使用 Actions
????store.函數(shù)名?傳入實(shí)參進(jìn)行修改