亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解vuex中mutation/action的傳參方式

2019-11-19 13:19:35
字體:
來源:轉載
供稿:網友

前言

在vuex中提交 mutation 是更改狀態的唯一方法,并且這個過程是同步的,異步邏輯都應該封裝到 action 里面。對于mutation/action,有一個常見的操作就是傳參,也就是官網上說的“提交載荷”。

這里是關于如何在vue-cli中使用vuex的方法,我們采用將vuex設置分割成不同模塊的方法。其中,state模塊中配置如下

//vuex中的stateconst state = {  count: 0}export default state;

mutation傳參

樸實無華的方式

mutation.js

//vuex中的mutationconst mutations = {  increment: (state,n) => {    //n是從組件中傳來的參數    state.count += n;  }}export default mutations;

vue組件中(省去其他代碼)

methods: {  add(){    //傳參    this.$store.commit('increment',5);  }}

對象風格提交參數

mutation.js

//vuex中的mutationconst mutations = {  decrementa: (state,payload) => {    state.count -= payload.amount;  }}export default mutations;

vue組件

methods: {  reducea(){    //對象風格傳參    this.$store.commit({      type: 'decrementa',      amount: 5    });  },}

action傳參

樸實無華

action.js

/vuex中的actionconst actions = {  increment(context,args){    context.commit('increment',args);  }}export default actions;

mutation.js

//vuex中的mutationconst mutations = {  increment: (state,n) => {    state.count += n;  }}export default mutations;

vue組件

methods: {  adda(){    //觸發action    this.$store.dispatch('increment',5);  }}

對象風格

action.js

//vuex中的actionconst actions = {  decrementa(context,payload){    context.commit('decrementa',payload);  }}export default actions;

mutation.js

//vuex中的mutationconst mutations = {  decrementa: (state,payload) => {    state.count -= payload.amount;  }}export default mutations;

vue組件

methods: {  reduceb(){    this.$store.dispatch({      type: 'decrementa',      amount: 5    });  }}

action的異步操作

突然就想總結一下action的異步操作。。。。

返回promise

action.js

//vuex中的actionconst actions = {  asyncMul(context,payload){    //返回promise給觸發的store.dispatch    return new Promise((resolve,reject) => {      setTimeout(() => {        context.commit('multiplication',payload);        resolve("async over");      },2000);    });  }}export default actions;

mutation.js

//vuex中的mutationconst mutations = {  multiplication(state,payload){    state.count *= payload.amount;  }}export default mutations;

vue組件

methods: {  asyncMul(){    let amount = {      type: 'asyncMul',      amount: 5    }    this.$store.dispatch(amount).then((result) => {      console.log(result);    });  }}

在另外一個 action 中組合action

action.js

//vuex中的actionconst actions = {  asyncMul(context,payload){    //返回promise給觸發的store.dispatch    return new Promise((resolve,reject) => {      setTimeout(() => {        context.commit('multiplication',payload);        resolve("async over");      },2000);    });  },  actiona({dispatch,commit},payload){    return dispatch('asyncMul',payload).then(() => {      commit('multiplication',payload);      return "async over";    })  }}export default actions;

mutation.js

//vuex中的mutationconst mutations = {  multiplication(state,payload){    state.count *= payload.amount;  }}export default mutations;

vue組件

methods: {  actiona(){    let amount = {      type: 'actiona',      amount: 5    }    this.$store.dispatch(amount).then((result) => {      console.log(result);    });  }}

使用async函數

action.js

//vuex中的actionconst actions = {  asyncMul(context,payload){    //返回promise給觸發的store.dispatch    return new Promise((resolve,reject) => {      setTimeout(() => {        context.commit('multiplication',payload);        resolve("async over");      },2000);    });  },  async actionb({dispatch,commit},payload){    await dispatch('asyncMul',payload);    commit('multiplication',payload);  }}export default actions;

mutation.js

//vuex中的mutationconst mutations = {  multiplication(state,payload){    state.count *= payload.amount;  }}export default mutations;

vue組件

methods: {  actionb(){    let amount = {      type: 'actionb',      amount: 5    }    this.$store.dispatch(amount).then(() => {      ...    });  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品在线观看一区二区| 欧美精品国产精品日韩精品| 91超碰caoporn97人人| 国产精品色午夜在线观看| 久久精品国产99国产精品澳门| 国产精品久久网| 国产福利成人在线| 国产又爽又黄的激情精品视频| 欧美一级片一区| 亚洲精品按摩视频| 亚洲一区二区久久久| 日韩精品在线电影| 亚洲肉体裸体xxxx137| 欧美性xxxxxxxxx| 午夜精品一区二区三区在线| 中文字幕亚洲第一| 亚洲激情视频网| 国产精品流白浆视频| 欧美老女人在线视频| 亚洲福利在线看| 91香蕉嫩草神马影院在线观看| 欧美一级淫片videoshd| 色偷偷88888欧美精品久久久| 国产精品中文在线| 国产精品久久久久久亚洲调教| 国产亚洲免费的视频看| 日本精品中文字幕| 91黑丝在线观看| 亚洲一区中文字幕在线观看| 米奇精品一区二区三区在线观看| 2019精品视频| 国产99视频在线观看| 国模gogo一区二区大胆私拍| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品在线观看www| 日本欧美一级片| 精品国产福利视频| 亚洲r级在线观看| 亚洲人成电影网站色www| 91精品久久久久久久久久另类| 亚洲xxx大片| 久久999免费视频| 亚洲人成在线观| 中文字幕亚洲图片| 欧美成年人网站| 日韩av理论片| 少妇激情综合网| 精品女厕一区二区三区| 久久精品一偷一偷国产| 91久久在线播放| 国产区精品在线观看| 中文字幕日韩在线视频| 久久综合88中文色鬼| 中文国产成人精品| 国产综合香蕉五月婷在线| 韩国三级日本三级少妇99| 精品久久久久久国产| 欧美极品少妇xxxxⅹ喷水| 亚洲精品网站在线播放gif| 国产精品久久一| 91视频8mav| 国产精品久久久久久亚洲影视| 亚洲国产欧美自拍| 亚洲美女av电影| 国产网站欧美日韩免费精品在线观看| 免费91麻豆精品国产自产在线观看| 日韩欧美在线第一页| 91亚洲一区精品| 亚洲精品456在线播放狼人| 成人黄色片网站| 国产91对白在线播放| 欧美成人午夜视频| 欧美电影免费观看大全| 亚洲无限av看| 欧美老肥婆性猛交视频| 91国产视频在线播放| 欧美午夜片在线免费观看| 亚州成人av在线| 北条麻妃在线一区二区| 亚洲毛片在线观看.| 欧美一区二区视频97| 欧美激情一区二区三区久久久| 亚洲第一区第一页| 成人精品在线观看| 国产精品白嫩初高中害羞小美女| 亚洲人成电影在线观看天堂色| 91香蕉国产在线观看| 久久99热这里只有精品国产| 国产精品福利片| 久久久女女女女999久久| 日韩中文字幕免费| 日韩一二三在线视频播| 亚洲精品国产成人| 亚洲国产精品久久精品怡红院| 尤物yw午夜国产精品视频| 日本欧美在线视频| 久久久久久网站| 亚洲一区二区精品| 欧美另类交人妖| 欧美夫妻性生活视频| 精品无人区太爽高潮在线播放| 国产精品亚洲视频在线观看| 538国产精品一区二区免费视频| 欧美视频一区二区三区…| 欧美大片第1页| 懂色av中文一区二区三区天美| 97国产精品久久| 欧美xxxwww| 亚洲网站视频福利| 欧美激情在线观看视频| 68精品国产免费久久久久久婷婷| 久久激情视频免费观看| 国产91av在线| 亚洲国产精品悠悠久久琪琪| 性色av一区二区咪爱| 美女扒开尿口让男人操亚洲视频网站| 国产精品99久久99久久久二8| 日韩精品极品在线观看播放免费视频| 国产+人+亚洲| 久久久999精品视频| 久久免费国产精品1| 成人精品一区二区三区| 亚洲网站在线播放| 中文字幕亚洲一区| 久久久久国产精品一区| 在线电影中文日韩| 亚洲国产日韩欧美综合久久| 日韩欧美中文第一页| 亚洲综合日韩中文字幕v在线| 亚洲免费视频在线观看| 亚洲视频电影图片偷拍一区| 一区国产精品视频| 国产亚洲精品va在线观看| 日日噜噜噜夜夜爽亚洲精品| 国产视频久久网| 国模精品一区二区三区色天香| 欧美激情视频免费观看| 91中文字幕在线观看| 日韩一区二区三区在线播放| 久久久国产视频| 精品久久香蕉国产线看观看亚洲| 亚洲人成电影在线播放| 欧美日韩国产在线播放| 久久久久久久国产精品视频| 国产精品高精视频免费| 亚洲精品丝袜日韩| 欧美成aaa人片免费看| 色樱桃影院亚洲精品影院| 久久精品国产综合| 91精品国产色综合久久不卡98口| 国产噜噜噜噜噜久久久久久久久| 国自产精品手机在线观看视频| 成人激情春色网| 国产亚洲欧洲黄色| 国产精品久久久久久久久粉嫩av| 国产精品普通话| 色综合影院在线| 色噜噜久久综合伊人一本| 久久6免费高清热精品| 日韩av在线免费| 久久久综合av| 最近2019年好看中文字幕视频| 久久视频国产精品免费视频在线| 亚洲韩国欧洲国产日产av|