vue基本知識 10 統一狀態管理Vuex

2021-10-19 18:19:45 字數 2694 閱讀 5414

vuex是乙個專門為vue.js應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以可**的方式發生改變

vue add vuex
state:將應用全域性狀態定義在state中

state
mutation:修改state只能通過mutation

mutations:

logout

(state)

}

使用store.state獲取狀態

"login" v-if=

"!$store.$state.islogin"

>登入<

/button>

"logout" v-

else

>登出<

/button>

修改狀態只能通store.dispatch(mutation)

this

.$store.

commit

('login'

)this

.$store.

commit

('logout'

)

action類似於mutation,不同在於action可以提交的是mutation,而不是直接變更狀態

action可以包含任意非同步操作

login

(,username)

else})

})}

派發動作

this

.$store.

dispatch

('login'

,'admin').

then((

)=>).

catch((

)=>

)

使用modules定義多個子模組利於元件的複雜狀態

import user from

'./user'

export

default

newvuex.store(}

)

移動端先前登入狀態相關**到user.js

export

default

訪問方式響應變化

"login" v-if=

"!$store.state.user.islogin"

>登入<

/button>

this

.$store.

dispatch

('user/login'

,'admin').

then((

)=>).

catch((

)=>

)

mapstate()/mapmutation()/mapaction()

通過這些對映方法可以讓大家少敲幾個字,避免對$store直接訪問

import

from

'vuex'

computed:

"login" v-if=

"!islogin"

>登入<

/button>

action相關修改

import

from

'vuex'

methods:

...mapactions([

'user/login'

,'user/logout'])

}

getter

可以使用getters從store的state派生出一些狀態

export

default

, mutations:},

getters:},

actions:

,username)

else},

1000)}

)}}}

嚴格模式下,無論何時發生了狀態變更且不是由mutation函式引起,將會丟擲錯誤。這能保證所有的狀態變更都能被除錯工具追蹤到,開啟嚴格模式strict

const store =

newvuex.store

()

vuex的store接受plugins選項,這個選項暴露出每次mutation的鉤子。vuex外掛程式就是乙個函式,它接收store作為唯一引數:

const myplugin = store =

>

註冊外掛程式:

const store =

newvuex.store

()

範例:實現登入狀態持久化,store/plugins/persist.js

export

default store=>

} store.

subscribe

((mutation,state)

=>

else

if(mutation.type===

'user/logout')}

)}

vue基本知識(一)

一 常見指令 v cloak 用來解決閃爍問題 v text 預設沒有閃爍問題,會覆蓋掉元素中原來的內容 插值運算子,只會替換掉自己的佔位符,有閃爍問題 v html 輸出為html格式 會覆蓋 v bind 用來提供繫結屬性的指令,縮寫為 例如 v bind title mytitle v on ...

vue 的基本知識

mvc 與mvvm 的區別 mvcmvvm 後端框架 前端框架 專案中需要匯入相關的 vue包 與vue專案的基本格式 基本指令 插值表示式 輸出data裡面的資料 前後可以任意跟上想要的資料 v cloak 處理頁面沒有載入資料的時候顯示源生 的問題 v text 只能輸出data 裡面的資料 前...

vue基本知識概述

mvvm設計模式 傳統網頁組成 3部分 html 定義網頁的內容 css 定義網頁的樣式 js 為網頁新增互動行為 問題 js dom操作,既要加工資料,又要承擔大量的反覆的增刪改查操作。重新劃分上述3部分 view檢視 指網頁中的元素和樣式,包括html和css model模型資料 指程式中建立的...