摘要:學習筆記存儲全局的狀態數據,在整個的所有組件里面都可以訪問對應原生的定義的是一系列操作里面數據的方法需要注意的是參數的寫法類似于原生里面的就是里面的參數傳遞過來的參數對里面數據的一個過濾處理對應原生的例如當我們改變里面的數據的時候,會監
Vuex 學習筆記
store.js 存儲全局的狀態數據,在整個vue的所有組件里面都可以訪問 對應原生的 data
const state = { count: 1 } export default state;
mutations.js 定義的是一系列操作state里面數據的方法 ( 需要注意的是參數的寫法 )類似于原生里面的methods
const mutations = { // state就是store里面的參數 num傳遞過來的參數 add(state, num) { state.count = state.count + num; }, reduce(state) { state.count--; } }; export default mutations;
getters 對state里面數據的一個過濾處理 對應原生的 computed 例如 當我們改變state里面的數據的時候,會監聽這個數據的變化,返回一個新的數據
const getters = { countDouble(state) { return state.count % 2 ? "奇數" : "偶數" } } export default getters;
當我們通過mutations里面的定義的方法改變state的時候,會實時的更新這個數是奇數還是偶數
action 項目中,大多數情況都是異步的操作,怎么處理異步的操作
addActions(context, params) { /** * context 里面的參數 * { dispatch commit getters state } * params 就是調用 addActions 里面的參數 就是這里的 addActions(100) 參數就是 100 */ console.log(context, params) fetch("https://api.myjson.com/bins/y10ma").then(data => { return data.json() }).then(data => { // 異步操作 add 方法就是 context.commit("add", data.num) }); }, // 這個地方就是解構賦值 reduceActions({ commit }) { console.log(commit); commit("reduce") } } export default actions;
將所有的文件整合進入 store文件夾下面的index.js 里面
import Vue from "vue" import Vuex from "vuex" Vue.use(Vuex) import state from "./store"; //全局的state倉庫 import mutations from "./mutations"; // 全局的 mutations 定義全局的事件 import getters from "./getters"; // 全局的 computed 通過監聽 state 里面值得變化 返回需要的數據類型 import actions from "./actions" // 全局的異步操作 const store = new Vuex.Store({ state, // 定義狀態 mutations, getters, actions }); export default store;
最后一步 就是需要掛載到全局的vue上 main.js文件
import Vue from "vue" import App from "./App" import router from "./router" Vue.config.productionTip = false import store from "./store/index"; /* eslint-disable no-new */ new Vue({ el: "#app", router, store, components: { App }, template: "" })
如何在組件當中 調用上面的一系列的方法。
...mapState(["count"]) 獲取state 里面的數據
$store.state.count => {{ $store.state.count }}{{ $route.name }}mapState => {{count}}mapState => {{c}}getters 的使用 注意定義 和 mapGetters 的使用方式
$store.getters.countDouble 訪問=> {{ $store.getters.countDouble }}...mapGetters(["countDouble"])訪問=> {{countDouble }}時間都是定義在mutations里面 ...mapMutations(["add"]) 參數傳遞: @click="add(100)"
如何處理異步 actions 處理異步的操作
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95354.html
摘要:我們通常稱之為狀態管理模式,用于解決組件間通信的以及多組件共享狀態等問題。創建指定命名空間的輔助函數,總結的功能首先分為兩大類自己的實例使用為組件中使用便利而提供的輔助函數自己內部對數據狀態有兩種功能修改數據狀態異步同步。 what is Vuex ? 這句話我想每個搜索過Vuex官網文檔的人都看到過, 在學習源碼前,當然要有一些前提條件了。 了解Vuex的作用,以及他的使用場景。 ...
摘要:而鉆研最好的方式,就是閱讀的源代碼。整個的源代碼,核心內容包括兩部分。逃而動手腳的代碼,就存在于源代碼的中。整個源代碼讀下來一遍,雖然有些部分不太理解,但是對和一些代碼的使用的理解又加深了一步。 筆記中的Vue與Vuex版本為1.0.21和0.6.2,需要閱讀者有使用Vue,Vuex,ES6的經驗。 起因 俗話說得好,沒有無緣無故的愛,也沒有無緣無故的恨,更不會無緣無故的去閱讀別人的源...
摘要:說實在話,我在閱讀文檔的時候,也很難以去理解,甚至覺得沒有使用它我也可以。介紹那么到底是什么引用官網的說法就是是一個專為應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。 前言 先說句前話,如果不是接觸大型項目,不需要有多個子頁面,不使用vuex也是完全可以的。 說實在話,我在閱讀vuex文檔的時候,也很難以去理解v...
摘要:說實在話,我在閱讀文檔的時候,也很難以去理解,甚至覺得沒有使用它我也可以。介紹那么到底是什么引用官網的說法就是是一個專為應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。 前言 先說句前話,如果不是接觸大型項目,不需要有多個子頁面,不使用vuex也是完全可以的。 說實在話,我在閱讀vuex文檔的時候,也很難以去理解v...
摘要:說實在話,我在閱讀文檔的時候,也很難以去理解,甚至覺得沒有使用它我也可以。介紹那么到底是什么引用官網的說法就是是一個專為應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。 前言 先說句前話,如果不是接觸大型項目,不需要有多個子頁面,不使用vuex也是完全可以的。 說實在話,我在閱讀vuex文檔的時候,也很難以去理解v...
閱讀 892·2021-10-13 09:39
閱讀 1481·2021-10-11 10:57
閱讀 2589·2019-08-26 13:53
閱讀 2538·2019-08-26 12:23
閱讀 3681·2019-08-23 18:30
閱讀 3745·2019-08-23 18:08
閱讀 2524·2019-08-23 18:04
閱讀 2959·2019-08-23 16:28