Vuex的核心概念入門必看

2021-10-07 14:33:25 字數 2071 閱讀 4817

以下內容可直接用編輯器開啟檢視

<

!doctype html>

"en"

>

"utf-8"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

vuex的使用<

/title>

<

/head>

1.元件之間共享資料的方式:

父元件向子元件傳值:v-bind屬性繫結

子元件向父元件傳值:v-on事件繫結

兄弟元件之間的資料共享:eventbus事件中心

2.vuex:實現元件全域性狀態資料管理的一種機制,可以方便實現各個元件之間的資料共享,儲存在vuex中的資料都是響應式的

3.vuex的基本使用

匯入:import vuex from

'vuex'

安裝:vue.

use(vuex)

建立vuex例項物件:

const store =

newvuex.store(}

) 將例項掛載vue例項中:

newvue()

4.vuex的核心概念:

state

(唯一公共資料源)

,mutations

(只有它有權利改變state的資料)

,actions

(非同步的操作)

,getters

(用於對state中的資料進行加工處理形成新的資料,不會直接修改state的資料,只起到包裝作用,類似vue的計算屬性)

export

default

newvuex.store(,

mutations:},

actions:

,1000)}

},getters:}}

) 在元件中訪問state中的資料:

this

.$store.state.

全域性資料名稱

(a);注意如果用

}this可以省略

mutations中的資料說明add為事件名,state為固定寫法表示state資料來源物件,step為接受資料的形參;

在元件中methods的事件中使用:

this

.$store.

commit

('mutations中對應的事件名例add',8

)觸發,

8為傳遞過去的資料

actions中的資料說明addasync為非同步事件名,context為固定寫法表示mutations事件物件,context.commit固定寫法

表示查詢mutations某個事件物件;step為接受資料的形參

在元件中methods的事件中使用:

this

.$store.

dispatch

('非同步函式名addasync',8

)來觸發,

8為傳遞過去的資料

getters中的資料說明show為事件說明,state為固定寫法表示資料物件,state中的資料發生變化對應 getters中相應包裝資料

也會發生變化

在元件中使用:

this

.$store.getters.

名稱(show)

,注意如果用

}this可以省略

-->

<

/body>

<

/html>

小結:

state物件為vuex的唯一的公共資料源;

mutations只有它有權利可以改變vuex的公共資料;

actions一般處理非同步的操作,想改變公共資料,需要借助mutations來實現;

getters類似vue的計算屬性,不能直接改變公共資料,只對公共資料起到包裝的作用,而公共資料的變化也會影響其包裝出來的資料;

在vue元件中事件呼叫的時候是可以傳遞引數的,對應vuex中使用第二個形參接收

結語:如有錯誤之處,望請不吝賜教

Vuex的核心概念

state 提供唯一的公共資料源,所有共享的資料都要統一放到 store 的 state 中進行儲存。建立store資料來源,提供唯一公共資料 const store newvuex.store 1.1 元件訪問 state 中資料的第一種方式 this store.state.全域性資料名稱1.2...

Vuex核心概念Mutation Action

newvuex.store mutations commit increment mutations commit increment 10 mutations commit increment commit 當需要在物件上新增新屬性時,你應該 以新物件替換老物件。例如,利用 stage 3 的物件...

vuex的五個核心概念簡述

vuex是vue.js應用設計的狀態管理架構,通俗理解,可以想象就是vue元件中的data 1.state 基本資料來源 簡單的state const store newvuex.store 2.mutatios 提交更改資料的方法 同步 儲存 第乙個引數是vuex中對應mutation的方法,第二...