欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡化vuex的狀態(tài)管理方案的方法

 更新時間:2018年06月02日 08:41:38   作者:Myron  
在 vuejs 相關(guān)項(xiàng)目開發(fā)過程中,我們常常會使用 vuex 作為狀態(tài)管理工具, 整個組件的狀態(tài)做為單向數(shù)據(jù)流的模式管理,這篇文章主要介紹了簡化vuex的狀態(tài)管理方案的方法,感興趣的小伙伴們可以參考一下

在 vuejs 相關(guān)項(xiàng)目開發(fā)過程中,我們常常會使用 vuex 作為狀態(tài)管理工具, 整個組件的狀態(tài)做為單向數(shù)據(jù)流的模式管理。

事實(shí)上,在實(shí)際的使用中 vuex 可以說是相當(dāng)繁瑣的,每一次的需求增加需要增加 Mutations-Type 、 Action Mutations , 為了簡化這一操作,我們可以將 mutations 和 action 合并,簡化流程如下:

在此種思想的引導(dǎo)下, muse-model 誕生了,以簡單優(yōu)雅的方式完成整個項(xiàng)目的狀態(tài)管理。

什么是 muse-model

muse-model 并不是一個全新的狀態(tài)管理工具, 它是基于 vuex 開發(fā),可以說是 vuex 的一個輔助工具,在使用 muse-model 過程中,vuex 的一切 API 都是可以用的,這也方便了vuex 的用戶進(jìn)行過度。在初始化 muse-model 是也是需要傳入 store 對象。

// model.js
import Vue from 'vue';
import Vuex from 'vuex';
import MuseModel from 'muse-model';

export const store = Vuex.Store({
 strict: true
});

export default new MuseModel(store);

使用

我們將以一個計(jì)數(shù)器的例子來演示 muse-model 的使用。

定義一個 model

model 由 namespace state 、 action 三個部分組成

// count.js
export default {
  namespace: 'demo',
  state: {
    count: 1
  },
  add () {
    return {
      count: this.state.count + 1
    }
  },
  sub () {
    return {
      count: this.state.count - 1
    }
  }
}

不要再 action 中直接改變狀態(tài),而是通過 return 返回需要改變的新的狀態(tài).

連接組件

通過 connect 方法可以將 model 混入到組件的 computed 和 methods 中。

<template>
<div>
  <button@click="add">+</button>
  {{count}}
  <button@click="sub">-</button>
</div>
</template>
<script>
import model from './model';
import CountModel from './count';
const CountUI = {
  name: 'count-ui'
};

export default model.connect(CountUI, CountModel);
</script>

處理異步

關(guān)于異步處理只需要返回 promise 對象即可。

export default {
  //....
  addTimeOut () { // 異步處理
    return new Promise((resolve, reject) => {
     setTimeout(() => {
      resolve({
       count: this.state.count + 1
      });
     }, 1000);
    });
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue解決Not?allowed?to?load?local?resource問題的全過程

    vue解決Not?allowed?to?load?local?resource問題的全過程

    這篇文章主要給大家介紹了關(guān)于vue解決Not?allowed?to?load?local?resource問題的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • vue移動端時彈出側(cè)邊抽屜菜單效果

    vue移動端時彈出側(cè)邊抽屜菜單效果

    這篇文章主要介紹了vue移動端時彈出側(cè)邊抽屜菜單,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • vue中使用極驗(yàn)驗(yàn)證碼的方法(附demo)

    vue中使用極驗(yàn)驗(yàn)證碼的方法(附demo)

    這篇文章主要介紹了vue中使用極驗(yàn)驗(yàn)證碼的方法(附demo)本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Vue3響應(yīng)式高階用法之markRaw()的使用

    Vue3響應(yīng)式高階用法之markRaw()的使用

    在Vue3中,markRaw()用于防止對象被轉(zhuǎn)換為響應(yīng)式,適用于管理大型庫對象或靜態(tài)數(shù)據(jù),有助于優(yōu)化性能和防止不必要的修改,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-09-09
  • Vue組件生命周期運(yùn)行原理解析

    Vue組件生命周期運(yùn)行原理解析

    這篇文章主要介紹了Vue組件生命周期運(yùn)行原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • vue仿淘寶訂單狀態(tài)的tab切換效果

    vue仿淘寶訂單狀態(tài)的tab切換效果

    這篇文章主要為大家詳細(xì)介紹了vue仿淘寶訂單狀態(tài)tab切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • vue父子組件的數(shù)據(jù)傳遞示例

    vue父子組件的數(shù)據(jù)傳遞示例

    這篇文章主要介紹了vue父子組件的數(shù)據(jù)傳遞示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

    vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

    這篇文章主要介紹了vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 解決vue+element 鍵盤回車事件導(dǎo)致頁面刷新的問題

    解決vue+element 鍵盤回車事件導(dǎo)致頁面刷新的問題

    今天小編就為大家分享一篇解決vue+element 鍵盤回車事件導(dǎo)致頁面刷新的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue中的計(jì)算屬性的使用和vue實(shí)例的方法示例

    vue中的計(jì)算屬性的使用和vue實(shí)例的方法示例

    本篇文章主要介紹了vue計(jì)算屬性的使用和vue實(shí)例的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論