vuex的簡單使用


使用vuex進行組件間數據的管理

npm i vuex -S

main.js

import Vue from 'vue'
import App from './App.vue'
import store from './store.js'

new Vue({
    store,
  el: '#app',
  render: h => h(App)
})

store.js

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
// 這里定義初始值
let state = {
    count:10
};

const mutations = {
    add(context){
        context.count++
    },
    decrease(context){
        context.count--
    }
};

// 事件觸發后的邏輯操作
// 參數為事件函數
const actions = {
    add(add){
        add.commit('add')
    },
    decrease(decrease){
        decrease.commit('decrease')
    },
    oddAdd({commit,state}){
        if (state.count % 2 === 0) {
            commit('add')
        }
    }
};

// 返回改變后的數值
const getters = {
    count(context){
        return context.count
    },
    getOdd(context) {
        return context.count % 2 === 0 ? '偶數' : '奇數'
    }
};

export default new Vuex.Store({
    state,
    mutations,
    actions,
    getters
})

App.vue

<template>
  <div id="app">
  <button @click="add">add</button>
  <button @click="decrease">decrease</button>
  <button @click="oddAdd">oddAdd</button>
  <div>{{count}}</div>
  <div>{{getOdd}}</div>
  </div>
</template>
<script>
import {mapGetters,mapActions} from 'vuex'
    export default {
        // 得到計算后的值
        computed:mapGetters(['count','getOdd']),
        // 發生點擊事件觸發不同函數
        methods:mapActions(['add','decrease','oddAdd'])
    }
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM