91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vuex的核心概念和基本使用是怎么樣的

發布時間:2021-12-15 14:26:59 來源:億速云 閱讀:162 作者:柒染 欄目:開發技術

vuex的核心概念和基本使用是怎么樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

    介紹

    Vuex是實現組件全局狀態(數據)管理的一種機制,可以方便的實現組件之間的數據共享

    開始

    安裝

    ①直接下載方式

    創建一個 vuex.js 文件 將https://unpkg.com/vuex這個網址里的內容放到該文件夾里。

    ②CND方式
    <script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script>
    ③NPM方式
    npm install vuex --save
    ④Yarn方式
    yarn add vuex

    NPM方式安裝的使用方式

    1.在 scr 文件里創建一個 store / index.js 的文件夾,寫入以下內容。

    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    export default new Vuex.Store({
    state: {},
    mutations: {},
    actions: {},
    modules: {}
    })

    2.在main.js 里引入,然后掛載到 Vue 實例里

    import Vue from 'vue'
    import store from './store'
    new Vue({
      render: h => h(App),
      store
    }).$mount('#app')

    store概念及使用

    概念:

    就是組件之間共享數據的。

    只有 mutations 才能修改 store 中的數據

    使用:

    先定義后使用

    定義

    state: {
      num: 0
    }

    使用

    方式1(推薦)

    <div>{{ numAlias }}</div>
    
    import { mapState } from 'vuex'
    export default {
      //計算函數
      computed: mapState({
        // 傳字符串參數 'count' 等同于 `state => state.count`
        numAlias: 'num',//常用key是自己起的名隨便 value接收的數據
        // 箭頭函數可使代碼更簡練
        count: state => state.count,
        // 為了能夠使用 `this` 獲取局部狀態,必須使用常規函數
        countPlusLocalState (state) {
          return state.count + this.localCount
        }
        //可以定義其余的計算函數
      }),
      //或者這樣
      //計算函數
      computed: {
        mapState(['count'])
      }
    }

    方式2

    <div>{{ $store.state.count }}</div>

    mutations概念及使用

    概念:

    修改store里的數據,嚴格規定不能在其余的地方修改store的數據,mutations里不要執行異步操作。

    mutation 必須同步執行,不能異步執行。

    使用:

    先定義方法后使用

    定義

    mutations: {
    	//increment自定義方法 store參數是store數據, parameter參數是接收到的數據,可不要
        increment (state, parameter) {
            // 變更狀態
            state.num++
        }
    }

    使用

    方式1(推薦使用)

    import { mapState, mapMutations } from 'vuex'
    //方法
    methods: {
    	...mapMutations([
    	    // mutations自定義的方法名
        	'increment'
        ]),
        love() {
        	// 直接this調用 this.increment('需要傳過去的數據,可不要')
            this.increment('Bin')
        }
    }

    方式2

    methods: {
        love() {
        	// this.$store.commit('自定義的名稱', '傳過去的數據,可不傳')
        	this.$store.commit('increment', 'data')
        }
    }

    action概念及使用

    概念:

    用于處理異步操作。

    如果通過異步操作變更數據,必須通過action,而不能使用mutation,但是在action中還是要通過觸發mutation的方式間接變更數據。

    Action 類似于 mutation,不同在于:

    • Action 提交的是 mutation,而不是直接變更數據(狀態)。

    • Action 可以包含任意異步操作。

    定義

    mutations: {
    	//increment自定義方法 store參數是store數據, parameter參數是接收到的數據,可不要
        increment (state, parameter) {
            // 變更狀態
            state.num++
        }
    },
    actions: {
    	//add 自定義方法 context是參數,可以把它當作vuex的實例
        add(context) {
        	//可以通過context.commit('mutations中需要調用的方法')
        	context.commit('increment')
        }
    }

    使用

    方式1(推薦)

    import { mapState, mapMutations, mapActions } from 'vuex'
    export default {
      methods: {
        ...mapActions([
          'add', // 將 `this.add()` 映射為 `this.$store.dispatch('add')`
          // `mapActions` 也支持載荷:
          'add' // 將 `this.add(amount)` 映射為 `this.$store.dispatch('add', amount)`
        ]),
        ...mapActions({
          add: 'add' // 將 `this.add()` 映射為 `this.$store.dispatch('increment')`
        }),
        love() {
        	// 直接this調用 this.add('需要傳過去的數據,可不要')
        	this.add(data)
        }
      }
    }

    方式2

    methods: {
        love() {
        	// this.$store.dispatch('自定義的名稱', '傳過去的數據,可不傳')
        	this.$store.dispatch('add', data)
        }
    }

    getters概念及使用

    概念:

    getter用于對store中的數據進行加工處理形成新的數據。getting可以對store中已有的數據加工處理之后形成新的數據,類似Vue的計算縮寫。

    定義

    state: {
      num: 0
    },
    getters: {
        doneTodos: state => {
        	return state.num = 10
        }
    }

    使用

    方式1(推薦)

    <div>{{ doneTodos }}</div>
    
    import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
    export default {
      //計算函數
      computed: {
      	...mapState(['count']),
      	...mapmapGetters(['doneTodos'])
      }
    }

    方式2

    <div>{{ $store.getters.doneTodos }}</div>

    看完上述內容,你們掌握vuex的核心概念和基本使用是怎么樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    紫金县| 黎平县| 西乌珠穆沁旗| 祥云县| 阿瓦提县| 武强县| 天长市| 勃利县| 宁化县| 柏乡县| 丽江市| 若尔盖县| 沂源县| 内丘县| 襄樊市| 吉水县| 图木舒克市| 九龙坡区| 凤台县| 天水市| 兴化市| 自治县| 淳安县| 沂南县| 通山县| 佛坪县| 获嘉县| 潼南县| 桑日县| 榕江县| 武冈市| 奉节县| 龙泉市| 怀远县| 侯马市| 台中市| 周口市| 陈巴尔虎旗| 黔南| 兰溪市| 城固县|