vuealreadyreact & vue & angular

Vuex的使用

2022-06-07  本文已影响0人  itfitness

目录

安装

注意这里如果使用的是vue2版本需要指定vuex版本为3,如果用的是vue3版本那可以用最新的vuex

npm i vuex@3

配置

在src目录下新建store文件夹,并在其中新建index.js



index.js做如下配置

import Vue from "vue"
import Vuex from "vuex"
//使用Vuex
Vue.use(Vuex)
//准备actions用于响应组件中的动作
const actions = {
}
//准备mutations用于操作数据
const mutations = {
}
//准备state用于存储数据
const state = {
}
export default new Vuex.Store({
    actions,
    mutations,
    state
})

以上配置也符合Vuex提供的概念图



然后我们需要在main.js中引入该文件

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

Vue.config.productionTip = false
//引入Vuex的配置文件
import store from "./store/index.js"

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

使用

下面以一个加数量的案例来演示简单的使用方法



首先在store->index.js文件中加入数据和函数

import Vue from "vue"
import Vuex from "vuex"
//使用Vuex
Vue.use(Vuex)
//准备actions用于响应组件中的动作
const actions = {
    jia(ctx,value){
        //交给mutations处理
        ctx.commit("JIA",value)
    }
}
//准备mutations用于操作数据
const mutations = {
    JIA(state,value){
        //操作数据
        state.sum += value
    }
}
//准备state用于存储数据
const state = {
    sum:0
}

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

然后创建Sum组件,组件中展示的数据为store->index.js文件中配置的数据sum,然后按钮点击触发的是store->index.js中actions下的jia函数

<template>
    <div>
        <h1>当前和为:{{$store.state.sum}}</h1>
        <button @click="add">加</button>
    </div>
</template>

<script>
    export default{
        methods:{
            add(){
                this.$store.dispatch("jia",1)
            }
        }
    }
</script>

<style>
</style>
上一篇 下一篇

猜你喜欢

热点阅读