vuex1.0入門說明

vuex 1.0 vue1的版本
vuex 是對vue中的數(shù)據(jù)源狀態(tài)進(jìn)行管理的框架

vuex的圖解


image

vuex就是一個全局對象 統(tǒng)一管理數(shù)據(jù) 方便頁面和組件之間的數(shù)據(jù)傳遞

引用文檔

  • vuex 最重要的一條 組件永遠(yuǎn)都不應(yīng)該直接更改Vuex store的狀態(tài). store的狀態(tài)必須通過mutation handler(變更句柄)中管理
  • Vuex 使用的是 單一狀態(tài)作用樹 用一個對象包含全部的應(yīng)用層級狀態(tài). 每個應(yīng)用將僅僅包含1個store實例 和(EXTJS不同)
  • vuex 應(yīng)用的核心就是 store (倉庫) .store 本質(zhì)就是一個容器 包含中應(yīng)用中的大部分狀態(tài)(state) store的狀態(tài)是全局容器.

store 全局 倉儲

  1. Vuex 的狀態(tài)存儲是響應(yīng)式的. 當(dāng) Vue 組件從 store 中讀取狀態(tài)的時候, 若 store 中的狀態(tài)發(fā)生變化,那么相應(yīng)的組件也會相應(yīng)地高效地得到更新.
  2. 你不能直接改變 store 中的狀態(tài)。改變 store 中的狀態(tài)的唯一途徑就是顯式地分發(fā) 狀態(tài)變更事件(explicitly dispatching mutations)知给。這樣使得我們可以方便地跟蹤每一個狀態(tài)的變化杈笔,從而讓我們能夠?qū)崿F(xiàn)一些工具幫助我們更好地了解我們的應(yīng)用浅碾。

最簡單的 store

注意:我們將會在后續(xù)的文檔中用 ES2015 語法進(jìn)行案例展示夹囚。如果你還沒能掌握 ES2015部念,你得抓緊了舞痰!本文同樣假設(shè)你已經(jīng)了解了 Vue 本體的官方文檔中構(gòu)建大型應(yīng)用章節(jié)所涉及的概念.

創(chuàng)建 Vuex store 的過程相當(dāng)直截了當(dāng) - 只要提供一個初始化的 state 對象土榴,以及一些 mutations:

import Vuex from 'vuex'

const state = {
  count: 0
}

const mutations = {
  INCREMENT (state) {
    state.count++
  }
}

export default new Vuex.Store({
  state,
  mutations
})

現(xiàn)在,你可以通過 store.state 來讀取 state 對象响牛,還可以通過 dispatch 某 mutation 的名字來觸發(fā)這些狀態(tài)變更:

store.dispatch('INCREMENT')

console.log(store.state.count) // -> 1

如果你傾向于對象風(fēng)格的分發(fā)方式玷禽,你可以用這種語法:

// 效果同上
store.dispatch({
  type: 'INCREMENT'
})

Mutations

import Vuex from 'vuex'

const store = new Vuex.Store({
  state: {
    count: 1
  },
  mutations: {
    INCREMENT (state) {
      // 改變 state
      state.count++
    }
  }
})

用全部大寫命名 mutation 是一個慣例,方便將它和 actions 區(qū)分開呀打。

你不能直接調(diào)用 mutation handler. 這里傳入 Store 構(gòu)造函數(shù)的選項更像是在注冊事件回調(diào):『當(dāng) INCREMENT 事件被觸發(fā)時矢赁,調(diào)用這個 handler』。觸發(fā) mutation handler 的方法是 dispatch 一個 mutation 的事件名:

store.dispatch('INCREMENT')

帶參數(shù)的 dispatch

store.dispatch 可以接受額外的參數(shù):

// ...
mutations: {
  INCREMENT (state, n) {
    state.count += n
  }
}
store.dispatch('INCREMENT', 10)

這里的 10 會緊跟著 state 作為第二個參數(shù)被傳遞到 mutation handler. 所有額外的參數(shù)被稱為該 mutation 的 payload.

mutations 必須是同步函數(shù)
Actions 是用于分發(fā)mutations的函數(shù)

vuex1.0 Q&A

vuex1.0 demo

Vuex.Store 實例屬性

state

type: Object

根 state贬丛,只讀撩银。

Vuex.Store 實例方法

  • dispatch(mutationName: String, ...args)

直接觸發(fā)一個 mutation。在一些特殊情況下會需要用到這個方法豺憔,但通常來說额获,在組件中應(yīng)當(dāng)盡量通過調(diào)用 actions 來觸發(fā) mutation。

  • watch(pathOrGetter: String|Function, cb: Function, [options: Object])

監(jiān)聽一個 path 或 getter 的值恭应,當(dāng)值發(fā)生改變時觸發(fā)回調(diào)抄邀。接受與 vm.$watch 方法相同的配置選項作為可選參數(shù)。
執(zhí)行返回的 handle function 結(jié)束監(jiān)聽昼榛。

hotUpdate(newOptions: Object)

熱更新 actions 和 mutations撤摸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市褒纲,隨后出現(xiàn)的幾起案子准夷,更是在濱河造成了極大的恐慌,老刑警劉巖莺掠,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衫嵌,死亡現(xiàn)場離奇詭異,居然都是意外死亡彻秆,警方通過查閱死者的電腦和手機(jī)楔绞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門结闸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人酒朵,你說我怎么就攤上這事桦锄。” “怎么了蔫耽?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵结耀,是天一觀的道長。 經(jīng)常有香客問我匙铡,道長图甜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任鳖眼,我火速辦了婚禮黑毅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钦讳。我一直安慰自己矿瘦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布愿卒。 她就那樣靜靜地躺著缚去,像睡著了一般。 火紅的嫁衣襯著肌膚如雪掘猿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天唇跨,我揣著相機(jī)與錄音稠通,去河邊找鬼。 笑死买猖,一個胖子當(dāng)著我的面吹牛改橘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播玉控,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼飞主,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了高诺?” 一聲冷哼從身側(cè)響起碌识,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虱而,沒想到半個月后筏餐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡牡拇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年魁瞪,在試婚紗的時候發(fā)現(xiàn)自己被綠了穆律。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡导俘,死狀恐怖峦耘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旅薄,我是刑警寧澤辅髓,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站赋秀,受9級特大地震影響利朵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜猎莲,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一绍弟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧著洼,春花似錦樟遣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至液荸,卻和暖如春瞻佛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娇钱。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工伤柄, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人文搂。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓适刀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親煤蹭。 傳聞我的和親對象是個殘疾皇子笔喉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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

  • 安裝 npm npm install vuex --save 在一個模塊化的打包系統(tǒng)中,您必須顯式地通過Vue.u...
    蕭玄辭閱讀 2,934評論 0 7
  • 上一章總結(jié)了 Vuex 的框架原理硝皂,這一章我們將從 Vuex 的入口文件開始常挚,分步驟閱讀和解析源碼。由于 Vuex...
    你的肖同學(xué)閱讀 1,785評論 3 16
  • vuex 場景重現(xiàn):一個用戶在注冊頁面注冊了手機(jī)號碼稽物,跳轉(zhuǎn)到登錄頁面也想拿到這個手機(jī)號碼待侵,你可以通過vue的組件化...
    sunny519111閱讀 8,015評論 4 111
  • Vuex是什么? Vuex 是一個專為 Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式姨裸。它采用集中式存儲管理應(yīng)用的所有組件...
    蕭玄辭閱讀 3,114評論 0 6
  • Vuex 是什么秧倾? ** 官方解釋:Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式**怨酝。它采用集中...
    Rz______閱讀 2,303評論 1 10