自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

還有不懂Vuex嗎?看完你就理解了

開發(fā) 前端
如果沒有異步操作,那么我們就可以直接在組件內(nèi)提交狀態(tài)中的Mutations中自己編寫的方法來達成對state成員的操作。

1.什么是vuex?

官方的理解是:Vuex 是一個專為 Vue.js 應用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應用的所有組件的狀態(tài),并以相應的規(guī)則保證狀態(tài)以一種可預測的方式發(fā)生變化。Vuex 也集成到 Vue 的官方調(diào)試工具 devtools extension,提供了諸如零配置的 time-travel 調(diào)試、狀態(tài)快照導入導出等高級調(diào)試功能。

2.什么又是狀態(tài)管理呢?

讓我們從一個簡單的 Vue 計數(shù)應用開始:

new Vue({
// state
data () {
return {
count: 0
}
},
// view
template: `
<div>{{ count }}</div>
`,
// actions
methods: {
increment () {
this.count++
}
}
})

這個狀態(tài)管理包括三個部分:

state,驅(qū)動應用的數(shù)據(jù)源;

view,以聲明方式將 state 映射到視圖;

actions,響應在 view 上的用戶輸入導致的狀態(tài)變化。

3.vuex的工作流程

vue官網(wǎng)給的流程圖

首先,Vue組件如果調(diào)用某個VueX的方法過程中需要向后端請求時或者說出現(xiàn)異步操作時,需要dispatch VueX中actions的方法,以保證數(shù)據(jù)的同步??梢哉f,action的存在就是為了讓mutations中的方法能在異步操作中起作用。

如果沒有異步操作,那么我們就可以直接在組件內(nèi)提交狀態(tài)中的Mutations中自己編寫的方法來達成對state成員的操作。注意,1.3.3節(jié)中有提到,不建議在組件中直接對state中的成員進行操作,這是因為直接修改(例如:this.$store.state.name = 'hello')的話不能被VueDevtools所監(jiān)控到。

4. Mutations

mutations是操作state數(shù)據(jù)的方法的集合,比如對該數(shù)據(jù)的修改、增加、刪除等等。

4.1 Mutations使用方法

state是當前VueX對象中的state

payload是該方法在被調(diào)用時傳遞參數(shù)使用的

例如,我們編寫一個方法,當被執(zhí)行時,能把下例中的name值修改為"jack",我們只需要這樣做

index.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.store({
state:{
name:'helloVueX'
},
mutations:{
//es6語法,等同edit:funcion(){...}
edit(state){
state.name = 'jack'
}
}
})

export default store

而在組件中,我們需要這樣去調(diào)用這個mutation——例如在App.vue的某個method中:

this.$store.commit('edit')

5.Actions

由于直接在mutation方法中進行異步操作,將會引起數(shù)據(jù)失效。所以提供了Actions來專門進行異步操作,最終提交mutation方法。

Actions中的方法有兩個默認參數(shù)

context 上下文(相當于箭頭函數(shù)中的this)對象

payload 掛載參數(shù)

例如,我們在兩秒中后執(zhí)行2.2.2節(jié)中的edit方法

由于setTimeout是異步操作,所以需要使用actions

actions:{
aEdit(context,payload){
setTimeout(()=>{
context.commit('edit',payload)
},2000)
}
}

6.規(guī)范目錄結(jié)構(gòu)

store:.
│ actions.js
│ getters.js
│ index.js
│ mutations.js
│ mutations_type.js ##該項為存放mutaions方法常量的文件,按需要可加入

└─modules
Astore.js

對應的內(nèi)容存放在對應的文件中,和以前一樣,在index.js中存放并導出store。state中的數(shù)據(jù)盡量放在index.js中。而modules中的Astore局部模塊狀態(tài)如果多的話也可以進行細分。

責任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2022-05-03 00:03:11

狀態(tài)管理前端開發(fā)

2020-04-16 10:55:03

Java虛擬機字節(jié)碼

2020-04-21 23:14:08

數(shù)據(jù)并發(fā)控制

2018-03-21 16:19:40

MVCMVPMVVM

2022-10-20 18:43:32

C語言golang安全

2024-03-15 08:23:26

異步編程函數(shù)

2019-09-29 06:12:38

交換機配置vlan

2021-09-06 07:58:47

鏈表數(shù)據(jù)結(jié)構(gòu)

2019-12-26 09:15:44

網(wǎng)絡IOLinux

2012-11-30 11:19:02

JavaScript

2018-10-08 14:10:46

2019-09-16 08:32:59

遞歸算法編程

2020-06-18 10:48:44

Linux 系統(tǒng) 數(shù)據(jù)

2018-03-28 21:40:03

2019-09-18 10:12:37

遞歸數(shù)據(jù)結(jié)構(gòu)

2021-08-12 10:36:18

order byMySQL數(shù)據(jù)庫

2019-11-08 11:08:29

測試工程師AI人工智能

2020-11-04 08:37:37

C語言C++內(nèi)存

2021-06-16 00:57:16

JVM加載機制

2022-02-18 06:56:18

Wi-Fi路由器局域網(wǎng)
點贊
收藏

51CTO技術(shù)棧公眾號