今天使用Vuex,來製作一個簡單的購物車,
大概需要2、3次課的時間,
主要是通過它來掌握Vuex的基本使用原理。
vue-cli來開發的,
也使用了 bootstrap ,來做爲它的ui的界面。
<!-- -->
先安裝配置我們的開發環境,
先確定npm、node的版本,
(1)、首先全局安裝你的vue-cli,
npm install vue-cli -g
(2)、初始化我的項目目錄,
vue init webpack
<!--
Vuex是什麼?
-->
官網對它的定義是,“它是一個專門爲了vueJs的應用程序開發的狀態管理模式”。
也就是說,它是一種寫法,一種用法,一種方法,一種思路,而不是一種新的技術。
它是採用集中式的存儲,把它所管理的所有的vue組件的狀態,
並以相應的規則來保證狀態,以一種可以預測的方式發生變化。
<!-- 大白話翻譯一下, -->
集中式存儲,就是把所有的vue組件的狀態都放在一個地方。
什麼叫狀態啊?
組件的狀態,就是組件的數據,先就這麼理解沒什麼大問題。雖然不太準確。
什麼地方啊?就是全局大變量的套路。
<!-- -->
說,一切工具都是爲了需求而服務的。
現在看來,vuex它就是爲管理狀態(數據)而存在的。
狀態?
你把門打開,門的狀態從關0,到開1。
你把開關從橫轉到豎,開關的狀態0,從橫到豎1。
你在網上拖動一個按鈕,它的x座標發生了變化,從0到100。
這個狀態,就是它現在是什麼樣?
這個“什麼樣”,是以數據的形式來體現的。
狀態的改變,是因爲我們的行爲改變了它的外觀。
反過來說,就是事物的表現層,對我們的action做出了反饋。
即,在vue中,改變了組件的狀態,就是改變了組件的外觀。
以上這一大段描述,都是我個人主觀的理解,
未必在細節上完成正確,但大方向應該不錯。
<!-- -->
vuex它是怎麼管理狀態的呢?
Vuex使用 Store 對象,來保存和管理整個應用的狀態。
<!-- Store,它就是一個全局大變量 -->
它包含以下對象,
- state,存放狀態,保存數據
- getters state的計算屬性
獲取數據
- mutations 更改狀態的邏輯,
是一些操作數據的js邏輯
- actions
就是觸發的事件,
同步:action.commit()
異步:action.dispatch()
<!-- -->
官方的說法,
- state,驅動應用的數據源,(所有狀態保存在這)
- view,以聲明的方式state映射到視圖,
<!-- (改變狀態,引起表現層變化) -->
- actions,響應在view上的用戶的輸入導致的狀態的變化,
其實就是事件改變狀態,
<!-- 因爲vue-cli今天安裝的特別慢,今天就先這麼多 -->