vuex是專門用來管理vue.js應用程式中狀態的乙個外掛程式。他的作用是將應用中的所有狀態都放在一起,
集中式來管理。需要宣告的是,這裡所說的狀態指的是vue元件中data裡面的屬性。簡單的來說,
它就是儲存公共變數的東西,然後外掛程式可以通過它來訪問,或者修改資料,來達到響應式.
相當於乙個倉庫,裡面可以放很多公共的東西,而這些公共的東西都可以讓元件使用.
首先在src檔案下建立個store檔案 裡面再新建乙個index.js
1. 匯入vue--->import vue from "vue"
2. 匯入vuex--->import vuex form "./vuex"
3. vue.use(vuex)
4.export default new vuex.store(,
mutations:{},
getters:{}
actions:{},
modules:{}
})這就是vuex的配置環境
在這裡我們需要注意,我們用的是vuex.store這個功能,所以在新建時用的vuex.store,
就是為了在所有元件中使用都可以有這個方法.
接下來我們介紹一下vuex的屬性
state:
乙個專案裡面,只有乙個store,不要建立多個store,所有的資料放在state中就可以了.(單一資料來源state)
getters:
資料需要經過一系列變化,然後通過使用getters定義乙個方法,然後呼叫的時候通過$store.getters.方法名來呼叫
通過三個小例子帶著了解一下getters屬性
state定義了students的資訊如下
students: [,,三個小要求:,]
1. 我們現在需要將學生資訊裡面年齡超過20的取出來
2. 取出超過20歲學生的個數
3. 我們想要通過id進行查詢,需要往裡面傳引數
以上要求均要通過vuex裡面的getters屬性定義方法
第乙個: 需要將學生資訊裡面年齡超過20的取出來
over20(state))
}定義這樣乙個方法就可以了,呼叫時$store.getters.over20
第二個: 取出超過20歲學生的個數
方法一:
over20count(state)).length方法二: 告訴我們也可以呼叫getters裡面的方法}
over20count(state,getters)方法三:在呼叫的時候加length 也就是 $store.getters.over20.length
當然,我們這些方法在正確呼叫後,就可以得到結果了
這就是getter一些用法了
簡單舉個例子之前做過的計數器
我們現在將計算器封裝成乙個元件,然後我們將他放到掛載的頁面上
connter.vue**以及另一組件(元件2個共用vuex中的資料)
這裡我們將connter放在state中,將事件方法放在mutations中,
注意,我們在建立increment和decrement事件的時候,傳入了state,如果你不寫的話,雖然不會報錯,但是頁面會沒有任何變化.所以必須要有乙個引數接收,然後利用接收的引數去訪問connter變數.然後我們就去connter元件中定義兩個事件了,add和down,當然我們是通過在方法中使用this.$store.commit("vuex中的mutations中的事件型別")比如我的add中的this.$store.commit("increment")然後就相當於執行了increment這個操作.
疑問: 在元件中如何訪問呢?
在元件中,我們可以這樣訪問 $store.state.connter在down中用法和add一樣
注意:我們可以通過mutations方式改變資料,而非直接改變資料$store.state ++,這是因為這樣vuex物件可以監聽或者追蹤到資料的改變. 方便我們的除錯這就是vuex最基本的乙個使用了
補充:mutations 攜帶引數用法
mutations是vuex唯一的提交更新的一種方式,在今後寫專案的時候,如果要用vuex我們必須要用這種方式來對資料進行更新. 不能越過這個直接進行更改.
下面,我們還是來學習mutations攜帶引數的用法
還是計數器,我們現在想用動態傳遞引數的方式來進行計數,比如count為任意數時上**吧 借助**幫我們理解
元件connter中
+5vuex中的mutations:+10methods:
}
decrementcount(state,count)這樣我們就可以進行引數傳遞了.
二個例子,就是我們可不可以傳遞學生的資訊?答案肯定是可以的
例如**:
addstu()結合vuex中的mutations定義的this.$store.commit("addstud",stu)
}
addstu(state,stu)關於mutation的提交風格
這裡面的引數pyload被稱為負載,就是講這個地方的資料上傳,可以是物件,可以是乙個值
如果是學生資訊的話直接就傳過去乙個物件就可以
第一種:
fucn()
第二種:
fucn())
}兩種分隔寫法不一樣,在vuex中的mutations中接收值也是不一樣的
第一種方式接收的時候,pyload是什麼就是什麼
第二種方式接收的時候,pyload是整個的乙個物件.
這樣我們就搞定了mutations攜帶引數了,注意一下,在mutations中定義的方法,裡面的引數第乙個引數就是state不能改變.
今天簡單總結了下,還有一些屬性還沒有學,明天學了再拿出來.
04 Vuex 基礎知識點
三 vue x核心內容 3.2 getter內容 3.3 mutation內容 3.4 action內容 3.5 module內容 vue x是專為vue.js應用程式開發的狀態管理模式,提供乙個在多個元件間共享狀態的外掛程式。它的作用是將多個元件共享的變數全部儲存在乙個物件裡,物件是存放在頂層的v...
html css基礎知識點筆記
簡單回憶了一下html css基礎 網頁標題 定義編碼格式,如 utf 8,gb2312,gbk eg 用於匯入css樣式檔案 常用標籤 2 嵌入樣式 3 匯入樣式 型別 字型型別 font family 字型渲染 text shadow 字型大小 font size 字型風格 font style...
基礎知識點
1 inline block布局 2 table布局 3 justify的末行不對齊 4 兩個圖示之間有空格 換行 5 背景中的的 路徑的 全部斜槓都為 不是 命令列下的這種 doctype html html head meta charset utf 8 title xx title head ...