Vuex

什么是Vuex?可以解决什么问题?

Vuex是Vue.js应用程序的状态管理模式+库。
Vuex是一个状态管理的插件,可以解决不同组件之间的数据共享和数据持久化。

Vuex有哪些属性?

  1. state:即Vuex中的基本数据
  2. getters:相当于state的计算属性
  3. mutation:提交更改数据的方法,必须是同步函数
  4. action:像一个装饰器,包裹mutations,使之可以异步
  5. modules:模块化Vuex

使用方法

在vue-cli已安装Vuex的情况下,直接引用。
如果没有安装的话:

  1. 安装Vuex,使用命令:cnpm install vuex --save 进行安装
  2. 在src下新建一个名为vuex的文件夹
  3. vuex文件夹里面新建一个store.js
    在这里插入图片描述
  4. 在刚刚创建的store.js引入vue和vuex,并且使用use Vuex
    在这里插入图片描述
  5. 定义数据
    在这里插入图片描述
  6. 定义方法
    在这里插入图片描述
  7. 实例化Vuex.store
    在这里插入图片描述
  8. 暴露
    在这里插入图片描述

完整代码如下

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

//state在vuex中用于储存数据  state=状态
var state = {
    count: 1
}

// mutations里面放的是方法,方法主要用于改变state中的数据  mutations=改变
var mutations = {
    incCount(){
        ++state.count;
    }
}

//vuex 实例化 Vuex.store
const store = new Vuex.Store({  //store储存
    state,
    mutations:mutations
})

// 暴露
export default store;

在组件中引入Vuex

1、在组件中引入store.js
2、注册
在这里插入图片描述
3、获取state里面的数据
第一种:this.$store.state
在这里插入图片描述
第二种:
在这里插入图片描述
4、触发mutations改变state里面的数据

this.$store.commit(‘incCount’)
在这里插入图片描述
完整代码如下

<template>
  <div class="hello">
    <h1>{{ this.$store.state.count }}</h1>
  </div>
</template>

<script>
import store from "../vuex/store.js" //引入store
export default {
  data () {
    return {
      msg: store.state.count
    }
  },
  store,  //注册
  methods:{
    incCount(){
      this.$store.commit('incCount');  /*触发 state里面的数据*/
    }
  }
}
</script>

Vuex dispatch和commit来调用mutations的区别

dispatch:含有异步操作,例如向后台提交数据。

写法:this.$store.dispatch('mutations方法名',值)

commit:同步操作

写法:this.$store.commit('mutations方法名',值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值