【Vue】Vue-Vuex的简单用法(一)

本文介绍了Vuex的基本概念和使用步骤,包括安装、挂载到Vue实例、在组件中使用state、mutations和actions的方法,展示了如何通过Vuex进行项目状态管理。
摘要由CSDN通过智能技术生成

系列笔记目录



前言

学习vue2.0时特别记录如何使用vuex,现在只记录如何使用,后续再修改心得


一、Vuex是什么?

项目状态管理工具

二、使用步骤

1.安装

代码如下(示例):

npm install vuex@3.X -S

2.挂在到vue实例中

代码如下(示例):index.js

import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);

import { ADD_MUTATION } from '@/store/mutations-type'

const store = new Vuex.Store({
    state: {
        count: 1000
    },
    mutations: {
        [ADD_MUTATION](state,payload){
            state.count += payload.value
        }
    },
    actions:{
        addAction({commit},payload){
            setTimeout(()=>{
                commit(ADD_MUTATION,payload);
            },2000)
        }
    }
})

export default store;

在main.js中引用

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from '@/store'
Vue.config.productionTip = false

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

3.组件中使用

<template>
  <div class="home">
    <!-- 显示count -->
    <h1>111111111111</h1>
    <h2>{{ $store.state.count }}</h2>
    <h2>{{ count1 }}</h2>
    <h2>{{ count2 }}</h2>
    <hr>
    <button @click="changeCount1">普通方法修改调用Matation+1</button>
    <button @click="changeCount2">普通方法调用Action+2</button>
    <hr>
    <button @click="changeCount3">函数辅助调用Matation+3</button>
    <button @click="changeCount4">函数辅助调用Action+4</button>
  </div>
</template>

<script>
// @ is an alias to /src
// import HelloWorld from '@/components/HelloWorld.vue'
import { mapState,mapMutations,mapActions } from 'vuex';
import {ADD_MUTATION} from '@/store/mutations-type'
export default {
  name: 'HomeView',
  components: {
    // HelloWorld
  },
  computed:{
    ...mapState(['count']),
    ...mapState({
      count1:(state)=>{
        return state.count;
      },
      count2(state){
        return state.count;
      }
    })
  },
  methods:{
    ...mapMutations([ADD_MUTATION]),
    ...mapActions(['addAction']),
    changeCount1(){
      this.$store.commit(ADD_MUTATION,{value:1})
    },
    changeCount2(){
      this.$store.dispatch('addAction',{value:2})
    },
    changeCount3(){
      this[ADD_MUTATION]({value:3})
    },
    changeCount4(){
      this.addAction({value:4})
    }
  }
}
</script>

总结

以上为Vuex中state、matations、actions的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值