最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

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

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:13:28
文檔

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

簡(jiǎn)化vuex的狀態(tài)管理方案的方法:在 vuejs 相關(guān)項(xiàng)目開發(fā)過(guò)程中,我們常常會(huì)使用 vuex 作為狀態(tài)管理工具, 整個(gè)組件的狀態(tài)做為單向數(shù)據(jù)流的模式管理。 事實(shí)上,在實(shí)際的使用中 vuex 可以說(shuō)是相當(dāng)繁瑣的,每一次的需求增加需要增加 Mutations-Type 、 Action 和 Mutations ,
推薦度:
導(dǎo)讀簡(jiǎn)化vuex的狀態(tài)管理方案的方法:在 vuejs 相關(guān)項(xiàng)目開發(fā)過(guò)程中,我們常常會(huì)使用 vuex 作為狀態(tài)管理工具, 整個(gè)組件的狀態(tài)做為單向數(shù)據(jù)流的模式管理。 事實(shí)上,在實(shí)際的使用中 vuex 可以說(shuō)是相當(dāng)繁瑣的,每一次的需求增加需要增加 Mutations-Type 、 Action 和 Mutations ,

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

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

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

什么是 muse-model

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

// 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);

使用

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

定義一個(gè) model

model 由 namespace state 、 action 三個(gè)部分組成

// 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),而是通過(guò) return 返回需要改變的新的狀態(tài).

連接組件

通過(guò) 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 對(duì)象即可。

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

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

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

簡(jiǎn)化vuex的狀態(tài)管理方案的方法:在 vuejs 相關(guān)項(xiàng)目開發(fā)過(guò)程中,我們常常會(huì)使用 vuex 作為狀態(tài)管理工具, 整個(gè)組件的狀態(tài)做為單向數(shù)據(jù)流的模式管理。 事實(shí)上,在實(shí)際的使用中 vuex 可以說(shuō)是相當(dāng)繁瑣的,每一次的需求增加需要增加 Mutations-Type 、 Action 和 Mutations ,
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top