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

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

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

1.什么是vuex?

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

2.什么又是狀態管理呢?

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

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

這個狀態管理包括三個部分:

state,驅動應用的數據源;

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

actions,響應在 view 上的用戶輸入導致的狀態變化。

3.vuex的工作流程

vue官網給的流程圖

首先,Vue組件如果調用某個VueX的方法過程中需要向后端請求時或者說出現異步操作時,需要dispatch VueX中actions的方法,以保證數據的同步。可以說,action的存在就是為了讓mutations中的方法能在異步操作中起作用。

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

4. Mutations

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

4.1 Mutations使用方法

state是當前VueX對象中的state

payload是該方法在被調用時傳遞參數使用的

例如,我們編寫一個方法,當被執行時,能把下例中的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

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

this.$store.commit('edit')

5.Actions

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

Actions中的方法有兩個默認參數

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

payload 掛載參數

例如,我們在兩秒中后執行2.2.2節中的edit方法

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

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

6.規范目錄結構

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

└─modules
Astore.js

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

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-05-03 00:03:11

狀態管理前端開發

2020-04-16 10:55:03

Java虛擬機字節碼

2020-04-21 23:14:08

數據并發控制

2018-03-21 16:19:40

MVCMVPMVVM

2024-03-15 08:23:26

異步編程函數

2022-10-20 18:43:32

C語言golang安全

2019-09-29 06:12:38

交換機配置vlan

2021-09-06 07:58:47

鏈表數據結構

2019-12-26 09:15:44

網絡IOLinux

2012-11-30 11:19:02

JavaScript

2019-09-16 08:32:59

遞歸算法編程

2018-10-08 14:10:46

2020-06-18 10:48:44

Linux 系統 數據

2019-09-18 10:12:37

遞歸數據結構

2018-03-28 21:40:03

2021-08-12 10:36:18

order byMySQL數據庫

2019-11-08 11:08:29

測試工程師AI人工智能

2020-11-04 08:37:37

C語言C++內存

2021-06-16 00:57:16

JVM加載機制

2021-06-15 07:15:15

Oracle底層explain
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区 | 亚洲第一区国产精品 | 久久久久免费精品国产小说色大师 | 奇米超碰| 国产女人精品视频 | 日日做夜夜爽毛片麻豆 | 91久久精品一区二区二区 | 欧美性一级 | 国产精品久久久久久久久久久免费看 | 日韩中文欧美 | 亚洲三区在线观看 | 中文字幕专区 | 国产乱xxav | 色视频一区二区 | 日韩国产精品一区二区三区 | 国产精品a久久久久 | 欧美视频 | www国产成人免费观看视频 | 久久精品国产99国产精品 | av中文字幕网 | 亚洲精品日韩在线 | 欧美日韩久 | 精品一区国产 | 在线观看av网站永久 | 欧美日韩一区二区在线观看 | 精品国产亚洲一区二区三区大结局 | 亚洲欧美在线观看 | 超碰操 | 国产成人精品一区二区三区视频 | 亚洲福利一区二区 | 久久久久免费 | 一区二区国产精品 | 成年人黄色一级片 | 91.com在线观看 | 久久精品视频免费观看 | 日韩精品一二三区 | a黄毛片 | 欧美精品在线免费观看 | 久久综合狠狠综合久久 | 韩国av影院 | 精品日韩一区 |