Vue2.0 探索之路——vuex入門教程和思考

Vuex是什麼

首先對於vuex是什麼,我先引用下官方的解釋。

Vuex 是一個專爲 Vue.js
應用程序開發的狀態管理模式。它採用集中式存儲管理應用的所有組件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。

就我的直觀理解 vuex類似於維護了一個全局的Map對象。你可以往裏存放 key-value。然後所有的state數據操作都方法化,保證操作的可追蹤和數據的乾淨。

Vuex應用場景

其實對於vuex的應用場景一開始我有點誤區,因爲我把它當做了一個從始至終類似於 localstorage的存在。後來發現一刷新頁面,vuex中的state存放的數據會丟失。因爲它只是在當前頁面初始化生成的一個實例,你一刷新頁面所有數據重新生成,數據就沒了。

所以,vuex只能用於單個頁面中不同組件(例如兄弟組件)的數據流通。

想必大家在想項目中啥情況會用到vuex吧。
官方是說到了時間你自然知道啥時候用了,因爲小項目加入vuex,代碼成本比較高,你得寫各種action,mutation,dispatch交互。你自個兒都會噁心掉。

只有項目大了,組件多了,你需要一個狀態機來解決同一個頁面內不同組件之間的數據交流
就比如說我下面例子中的 todolist中,todo輸入框是一個組件,todolist展示框也是一個組件,他們同屬於一個頁面,你用傳統的 event bus是很不方便的解決這個問題的。

還有就是子組件想改變父組件的情況下,就比如我們最近做的一個項目裏的動態表單,其中一個是做了彈出框選擇職業類,選完還得回填到父組件,以前的方式,你可能需要寫很多的event bus去攔截事件,現在你可以用vuex去很清晰的解決這個問題,修改vuex裏的值,父組件自動更新。

這裏寫圖片描述

Vuex基礎概念

vuex中涉及的概念主要有下面幾點,下面做個簡單的介紹和理解。

Vuex 官方文檔:https://vuex.vuejs.org/zh-cn/

轉自:https://segmentfault.com/a/1190000008861913

發佈了179 篇原創文章 · 獲贊 82 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章