## vuex基本使用方法

1.安裝配置vuex锨用,版本依賴(lài)

vue2的項(xiàng)目使用vuex3,vue3的項(xiàng)目使用vuex4
npm install vuex --save 這個(gè)指令默認(rèn)安裝Vuex4
npm install vuex@3 @代表安裝指定版本的Vuex3

2.創(chuàng)建 store/index.js 文件

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

Vue.use(Vuex)

export default new Vuex.Store({
  // 全局都可以使用的數(shù)據(jù)
  state: {
  },
  // getters, 相當(dāng)于對(duì)state里的數(shù)據(jù)進(jìn)行運(yùn)算得到的數(shù)據(jù) 類(lèi)似于computed對(duì)于data的處理
  getters: {
  },
  // mutations候味,定義修改state里面數(shù)據(jù)的方法
  mutations: {
  },
  // actions用法--actions中的方法觸發(fā)mutations中的方法從而改變state里的數(shù)據(jù);
  // 除此之外滥酥,如果需要異步操作剩岳,就必須在actions中執(zhí)行
  actions: {
  },
  // 將同一類(lèi)型的數(shù)據(jù)組合成一個(gè)模塊
  modules: {
  }
})

3捐康、Vuex的基本使用

Vuex實(shí)現(xiàn)了一個(gè)單向數(shù)據(jù)流仇矾,在全局擁有一個(gè)State存放數(shù)據(jù),所有修改State的操作必須通過(guò)Mutation進(jìn)行解总,Mutation的同時(shí)提供了訂閱者模式供外部插件調(diào)用獲取State數(shù)據(jù)的更新贮匕。所有異步接口需要走Action,常見(jiàn)于調(diào)用后端接口異步獲取更新數(shù)據(jù)花枫,而Action也是無(wú)法直接修改State的刻盐,還是需要通過(guò)Mutation來(lái)修改State的數(shù)據(jù)。最后劳翰,根據(jù)State的變化敦锌,渲染到視圖上。Vuex運(yùn)行依賴(lài)Vue內(nèi)部數(shù)據(jù)

1,$store.state

通過(guò)這個(gè)方式佳簸,能直接使用state里的數(shù)據(jù)

    <i>msg:{{$store.state.msg}}</i>
    <p>num:{{$store.state.num}}</p>

2乙墙、mutations

要想修改state的數(shù)據(jù)必須通過(guò)mutations

  在store/index.js中配置 
  // mutations,定義修改state里面數(shù)據(jù)的方法
  mutations: {
    updateMutationMsg (state) {
      state.msg = '修改之后的msg數(shù)據(jù)'
    }
  },
  //在  .vue的文件中使用
  methods: {
    updateStoreMsg () {
    // 組件methods通過(guò)調(diào)用vuex實(shí)例的commit方法觸發(fā)mutations中的方法修改msg
      this.$store.commit('updateMutationMsg')
    }
  },

3溺蕉,action

所有異步接口需要走Action,然后調(diào)用mutations中的方法伶丐,更改state中的數(shù)據(jù)

配置

  actions: {
    // actions方法中觸發(fā)mutations中的方法
    async actionUpdateNum (c, val) {
      const res = await axios.get('http://47.100.227.25:3000/books/queryall')
      // 觸發(fā)vuex實(shí)例mutations中的指定方法updateMutaNum
      c.commit('updateMutaNum', res[0].id)
    }
  }

使用

  methods: {
    // 組件methods中通過(guò)vuex實(shí)例的dispatch方法觸發(fā)vuex中actions里的方法,
    updateNum (val) {
      this.$store.dispatch('actionUpdateNum', val)
    }
  },

4.getters

  // getters, 相當(dāng)于對(duì)state里的數(shù)據(jù)進(jìn)行運(yùn)算得到的數(shù)據(jù) 類(lèi)似于computed對(duì)于data的處理,需要返回值
  getters: {
    numDouble (state) {
      return state.num * 2
    }
  },

5疯特,modules

將相關(guān)的數(shù)據(jù)處理作為一個(gè)模塊

  modules: {
    hh: msgModule
  }
  
  
const msgModule = {
   // 全局都可以使用的數(shù)據(jù)
  state: {
  },
  // getters, 相當(dāng)于對(duì)state里的數(shù)據(jù)進(jìn)行運(yùn)算得到的數(shù)據(jù) 類(lèi)似于computed對(duì)于data的處理
  getters: {
  },
  // mutations哗魂,定義修改state里面數(shù)據(jù)的方法
  mutations: {
  },
  // actions用法--actions中的方法觸發(fā)mutations中的方法從而改變state里的數(shù)據(jù);
  // 除此之外,如果需要異步操作漓雅,就必須在actions中執(zhí)行
  actions: {
  },
  // 將同一類(lèi)型的數(shù)據(jù)組合成一個(gè)模塊
  modules: {
  }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末录别,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子邻吞,更是在濱河造成了極大的恐慌组题,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抱冷,死亡現(xiàn)場(chǎng)離奇詭異崔列,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)旺遮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)赵讯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人耿眉,你說(shuō)我怎么就攤上這事边翼。” “怎么了鸣剪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵组底,是天一觀的道長(zhǎng)丈积。 經(jīng)常有香客問(wèn)我,道長(zhǎng)债鸡,這世上最難降的妖魔是什么江滨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮厌均,結(jié)果婚禮上牙寞,老公的妹妹穿的比我還像新娘。我一直安慰自己莫秆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布悔详。 她就那樣靜靜地躺著镊屎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茄螃。 梳的紋絲不亂的頭發(fā)上缝驳,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音归苍,去河邊找鬼用狱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拼弃,可吹牛的內(nèi)容都是我干的夏伊。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吻氧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼溺忧!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起盯孙,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鲁森,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后振惰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體歌溉,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年骑晶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了痛垛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡透罢,死狀恐怖榜晦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情羽圃,我是刑警寧澤乾胶,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布抖剿,位于F島的核電站,受9級(jí)特大地震影響识窿,放射性物質(zhì)發(fā)生泄漏斩郎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一喻频、第九天 我趴在偏房一處隱蔽的房頂上張望缩宜。 院中可真熱鬧,春花似錦甥温、人聲如沸锻煌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宋梧。三九已至,卻和暖如春狰挡,著一層夾襖步出監(jiān)牢的瞬間捂龄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工加叁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留倦沧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓它匕,卻偏偏與公主長(zhǎng)得像展融,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子豫柬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • Vuex 是一個(gè)專(zhuān)為 Vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式愈污。可以理解為項(xiàng)目的全局變量轮傍,使數(shù)據(jù)在各組件內(nèi)共享暂雹。 ...
    蠢材_8ed1閱讀 494評(píng)論 0 0
  • 在組件內(nèi)可以通過(guò)data屬性共享數(shù)據(jù),父子組件也可以通過(guò)props進(jìn)行數(shù)據(jù)共享创夜,但如果是兄弟跨組件之間的數(shù)據(jù)共享杭跪,...
    li4065閱讀 3,956評(píng)論 1 4
  • 1. Vuex概述 1.1 組件之間共享數(shù)據(jù)的方式 父向子傳值:v-bind屬性綁定子向父?jìng)髦担簐-on事件綁定兄...
    lvyweb閱讀 275評(píng)論 0 0
  • 1.安裝Vue 依賴(lài)包 npm install vuex@3 --savevue2 只能用vuex的3版本vue3...
    洪錦一閱讀 298評(píng)論 0 0
  • 1.什么是vuex? 官方的解釋?zhuān)?Vuex是一個(gè)專(zhuān)為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式 當(dāng)項(xiàng)目比較龐大的時(shí)候...
    冉開(kāi)林閱讀 303評(píng)論 0 0