-- 创造无限可能

Vue学习:vuex的使用

2022-08-03 16:05:00
520 人浏览 7 人点赞
有用,点赞支持一下

基础单词

mutations:改变、变异
store:仓库
state:状态
Action:事件

基础实例

// 如果在模块化构建系统中,请确保在开头调用了 Vue.use(Vuex)
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
        //可以添加其他代码
        state.count++
    }
  }
})
// 改变状态
// 通过提交 mutation 的方式,而非直接改变 store.state.count,是因为我们想要更明确地追踪到状态的变化
store.commit('increment')
//获取状态值
console.log(store.state.count) // -> 1

全局注册

const app = new Vue({
  el: '#app',
  // 把 store 对象提供给 “store” 选项,这可以把 store 的实例注入所有的子组件
  store,
  components: { Counter },
  template: `
    <div class="app">
      <counter></counter>
    </div>
  `
})
// 子组件使用
const Counter = {
  template: `<div>{{ count }}</div>`,
  computed: {
    count () {
      return this.$store.state.count
    }
  }
}

注意

  • 每个应用将仅仅包含一个 store 实例
  • 由于 Vuex 的状态存储是响应式的,从 store 实例中读取状态最简单的方法就是在计算属性 中返回某个状态