如何在TypeScript中使用Vuex

简介: 如何在TypeScript中使用Vuex

例如用TypeScript+VueX实现简单的点击实现加1功能

1.写入state和mutations /src/store/index.js文件代码如下

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex) // 把store 绑到 Vue.prototype
export default new Vuex.Store({
  // 相当于vue中的data
  state: {
    count: 0,
  },
  //相当于vue中的methods
  mutations: {
    vuexAdd(state) {
      state.count ++
    },
  },
})

2.于main.ts中加载store文件夹

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

3.于test.vue中使用

<template>
  <div>
  {{ count }}
       <button  @click="add">点我+1</button>
  </div>
</template>
<script lang="ts">
import Vue from 'vue'
import { Component } from 'vue-property-decorator'
import Button from '@/components/Button.vue'
@Component({
  computed: {
  //我们在使用Vuex中的数据,最好定义在computed计算属性中,这样变动可以即时更新
    count() {
    //使用了Vuex的state
      return this.$store.state.count
    },
  },
})
export default class test extends Vue {
  add() {
  // 使用了Vuex的mutations中定义的vuexAdd方法实现+1功能
    this.$store.commit('vuexAdd')
  }
}

e621351157aa0d1fd978b5c99a67b12.png

点击后:

60f48094ddf3eb1ef9b75f26f8d13b5.png

上面出现了一个问题,这在computed里拿出来的Vuex数据只能在template摸板中使用,在下方script里面使用就会报错,查阅文档半个小时后在Vue Class Component找到解决办法,就是利用ES6的get方法

所以我们的

computed: {
  //我们在使用Vuex中的数据,最好定义在computed计算属性中,这样变动可以即时更新
    count() {
    //使用了Vuex的state
      return this.$store.state.count
    },
}

要放到下面中,变成

export default class test extends Vue {
   get count() {
    //使用了Vuex的state
      return this.$store.state.count
   }
  add() {
  // 使用了Vuex的mutations中定义的vuexAdd方法实现+1功能
    this.$store.commit('vuexAdd')
  }
}



目录
相关文章
|
JavaScript
TypeScript 4.1 新特性:字符串模板类型,Vuex 终于有救了?
TypeScript 4.1 快要发布了,老爷子 Anders Hejlsberg[1] 加入了一项重大更新,「字符串模板类型」 的支持。昨天看到这个更新的我特别兴奋,曾几何时,只要一遇到字符串拼接相关的类型,TypeScript 就束手无策了
|
JavaScript 前端开发 API
Vue3 尝鲜 Hook + TypeScript 取代 Vuex 实现图书管理小型应用
Vue3 Beta版发布了,离正式投入生产使用又更近了一步。此外,React Hook在社区的发展也是如火如荼。 一时间大家都觉得Redux很low,都在研究各种各样配合hook实现的新形状态管理模式。
|
存储 缓存 JavaScript
小白学前端之TypeScript使用Vuex 4.0|8月更文挑战
官方介绍:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
192 0
|
存储 JavaScript 前端开发
vue高级进阶系列——用typescript玩转vue和vuex
用过vue的朋友大概对vuex也不陌生,vuex的官方解释是专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。说的简单点就是对vue的状态进行统一管理,如下图介绍了其管理模式
322 0
|
2月前
|
前端开发 JavaScript 安全
TypeScript在React Hooks中的应用:提升React开发的类型安全与可维护性
【7月更文挑战第17天】TypeScript在React Hooks中的应用极大地提升了React应用的类型安全性和可维护性。通过为状态、依赖项和自定义Hooks指定明确的类型,开发者可以编写更加健壮、易于理解和维护的代码。随着React和TypeScript的不断发展,结合两者的优势将成为构建现代Web应用的标准做法。
|
1月前
|
JavaScript
TypeScript——不能将类型“HTMLElement | null”分配给类型“HTMLElement”
TypeScript——不能将类型“HTMLElement | null”分配给类型“HTMLElement”
28 4
|
20天前
|
JavaScript 前端开发 编译器
Angular 与 TypeScript 强强联手太厉害啦!强类型编程带来巨大开发优势,快来一探究竟!
【8月更文挑战第31天】作为一名前端开发者,我致力于探索各种技术框架以提升开发效率与代码质量。近期深入研究了Angular与TypeScript的结合,体验到强类型编程带来的显著优势。Angular是一款强大的前端框架,而TypeScript则是由微软开发的一种强类型语言,为JavaScript增添了静态类型检查等功能。
22 0
|
1月前
|
JavaScript 编译器
typescript 解决变量多类型访问属性报错--工作随记
typescript 解决变量多类型访问属性报错--工作随记
|
30天前
|
JavaScript 前端开发 安全
TypeScript:解锁JavaScript的超级英雄模式!类型系统如何化身守护神,拯救你的代码免于崩溃与混乱,戏剧性变革开发体验!
【8月更文挑战第22天】TypeScript作为JavaScript的超集,引入了强大的类型系统,提升了编程的安全性和效率。本文通过案例展示TypeScript如何增强JavaScript:1) 显式类型声明确保函数参数与返回值的准确性;2) 接口和类加强类型检查,保证对象结构符合预期;3) 泛型编程提高代码复用性和灵活性。这些特性共同推动了前端开发的标准化和规模化。
48 0
|
1月前
|
JavaScript
TypeScript——Record类型
TypeScript——Record类型
32 0