码迷,mamicode.com
首页 > 其他好文 > 详细

vuex的使用

时间:2018-02-09 14:53:58      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:div   click   def   dex   oca   eth   npm   this   storage   

vuex其实可以看成一个公共的数据仓库,从作用来说大致上可以看成是我们的cookie或者localStorage,下面我们来看看怎么使用吧

1.安装

vuex不是vue内置的所以需要额外安装

npm i vuex --save

2.设置仓库

在src下面新建一个文件夹,这里我新建一个store/index.js,内容大致为:

import Vue from ‘vue‘
import Vuex from ‘vuex‘

Vue.use(Vuex)

const state = {
  count: 0
}

const mutations = {
  add (state, n) {
    state.count += n
  },
  reduce (state, n) {
    state.count -= n
  }
}

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

 

3.引入使用

vuex实例可以被引入到Vue实例和Vue组件中,引入后可以在this.$store中使用vuex

<template>
  <div>
      <!-- 通过$store.state获取仓库数据 -->
      {{$store.state.count}}<br>
      <!-- 通过computed mapState来简化数据写法 -->
      {{count}}<br>
      <!-- 通过$store.commit来触发仓库方法 -->
      <button @click="$store.commit(‘add‘, 10)">+</button>
       <!-- 通过methods mapMutation 来简化调用仓库方法 -->
      <button @click="reduce(2)">-</button>
  </div>
</template>

<script>
import store from ‘@/store‘
import { mapState, mapMutations } from ‘vuex‘

export default {
  data () {
    return {}
  },
  // 通过mapMutation来简化vuex数据获取
  methods: {
    ...mapMutations([‘add‘, ‘reduce‘])
  },
  store,
  // 通过mapState来简化vuex数据获取
  computed: {
    ...mapState([‘count‘])
  }
  // computed: mapState({
  //   count: state => state.count
  // })
  // computed: {
  //   count () {
  //     return this.$store.state.count
  //   }
  // }
}
</script>

 

vuex的使用

标签:div   click   def   dex   oca   eth   npm   this   storage   

原文地址:https://www.cnblogs.com/amiezhang/p/8434229.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!