Vuex

作者: 二荣xxx | 来源:发表于2021-01-29 12:21 被阅读0次

Vuex

Vuex:用于管理数据的工具(对象),读写数据

初始化
//min.ts
new Vue({
  store //store:store
})
//index.ts
Vue.use(Vuex); //将store绑到Vue.prototype上

const store = new Vuex.Store({
  state: { //相当于data
    count: 0
  },
  mutations: {  //相当于methods
    increment (state, n: number) {
      state.count += n;
    }
  }
});
export default store;

//使用
console.log(store.state.count); //拿到state数据 //0
store.commit('increment'); //调用increment方法
console.log(store.state.count);//1

在组件中使用Vuex

<div>
<button @click="add"> +1</button>
    {{ count }}
</div>
import store from '@/store/index.ts';

@Component({
  computed: {  //用computed监听count的变化,否则只能初始化监听一次
    count () {
      return store.state.count; //读
    }
  }
})

add () {
    store.commit('increment',1) //写
    //this.$store.commit('increment',1)
  }

鉴于以上操作较复杂,vuex提供了一个操作
用this.$store,直接传

<div>
<button @click="add"> +1</button>
    {{ count }}
</div>

读(在对象中的写法)

@Component({
  computed: {  //用computed监听count的变化,否则只能初始化监听一次
    count () {
      return this.$store.state.count; //读
    }
  }
})

读(在类中的写法)

get count () {
      return this.$store.state.count; //读
    }

add(){
    this.$store.commit('increment', 1); //写
}

注意:commit没有返回值,且只接受两个参数,如果有多个参数可用对象的写法

updateTag (state, payload: { id: string; name: string }) {
      const { id, name } = payload //取值  es6析构语法,id和name来自于object
      //const id = payload.id
      //const name= payload.name
}

既然这些变量在this上面,那就可以直接用

<div>
<button @click="$store.commit('increment',1)"> +1</button>
    {{ count }}
</div>
Vuex总结

Vuex使用mixin

import Vue from 'vue'
import Component from 'vue-class-component'

@Component
export class TagHelper extends Vue {
  xxx(){} //需要mixin的方法
}

export default TagHelper

使用

import { mixins } from 'vue-class-component'
@Component({
  mixins: [tagHelper]
})
export default class Tags extends mixins(tagHelper) {
//会自动读取mixin的方法,就不用再写一遍了
}

相关文章

  • VUEX基本介绍,包含实战示例及代码(基于Vue2.X)

    VUEX 1 VUEX基本介绍 1.1 官方API 1.2 什么是vuex 1.3 Vuex使用场景 1、Vuex...

  • 【文档笔记】-Vuex

    什么是vuex? vuex文档: https://vuex.vuejs.org/zh/[https://vuex....

  • vuex配置

    vuex配置 目录 vuex的五个核心 配置vuex vuex持久化 一、vuex五个核心概念 State 定义状...

  • Vuex

    安装Vuex cnpm install vuex --save-dev Vuex是什么? 这是[Vuex的官网](...

  • Vuex

    1.Vuex概述 2.Vuex基本使用 3.使用Vuex完成todo案例 1.Vuex概述 Vuex是实现组件全局...

  • vuex

    Vuex介绍: Vuex官网:http://vuex.vuejs.org/ Vuex是实现数据状态管理的技...

  • vuex+axios 的开发流程记录

    相关文档 vuex: https://vuex.vuejs.org/zh/ 是否有必要使用vuex vuex是vu...

  • 2019-06-07

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

  • 配置 vuex 和 vuex 本地持久化

    配置 vuex 和 vuex 本地持久化 目录 vuex是什么 vuex 的五个核心概念State 定义状态(变量...

  • vuex

    配置 vuex 和 vuex 本地持久化 目录 vuex是什么 vuex 的五个核心概念State 定义状态(变量...

网友评论

      本文标题:Vuex

      本文链接:https://www.haomeiwen.com/subject/ghdqtltx.html