vue3中使用ts + vuex的配置

本文介绍了如何在Vue项目中设置和使用Vuex状态管理库。首先创建了store文件夹下的index.ts,定义了store的状态、mutations和注入键。接着在vuex.d.ts中声明了组件自定义属性以访问store。在main.ts中,将store注入到Vue实例,并在组件内通过this.$store访问状态,使用计算属性和commit方法来操作state。
摘要由CSDN通过智能技术生成

一、创建store文件夹下的index.ts

// index.ts
import {createStore,Store} from 'vuex'
import {InjectionKey} from 'vue'

export const key: InjectionKey<Store<state>> = Symbol('key')

export type state ={
  count:number
}
export default createStore({
    state:{
      count:0
    },
    mutations:{
      add(state){
        state.count +=1
      }
    }
  })

二、声明 类型文件

//vuex.d.ts

import {ComponentCustomProperties} from 'vue'
import {Store} from 'vuex'
import { state } from '../store' 
declare module '@vue/runtime-core' {
  interface ComponentCustomProperties {
    $store : Store<state>
  }
}

三、main.ts文件


import { createApp } from 'vue'
import App from './App.vue'
import  Store,{key} from './store'
createApp(App).use(Store,key).mount('#app')

四、组件中使用

//模板中
<template>
	<p>{{this.$store.state.count}}</p> 
	// 这里就可以直接使用 this.$store.state
</template>

<script lang="ts" setup>
import {computed} from 'vue
import {useStore} from 'vuex'
import {key}  from '../store'  //从store文件夹下的index中引入

const store = useStore(key)

// 在计算属性中使用
let counts = computed(()=>{
return store.state.count
}) 

// 方法中调用mutations
let run =()=>{
return	store.commit('add')
}
</script>

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 3,可以通过使用Vuex来实现数据的持久化。VuexVue的官方状态管理库,可以用于管理应用程序的共享状态。在使用Vue 3和TypeScript进行状态持久化时,你可以按照以下步骤进行操作: 1. 首先,安装Vuex的最新版本,可以通过npm或yarn安装: ```bash npm install vuex@next --save ``` 或 ```bash yarn add vuex@next --save ``` 2. 创建一个Vuex store来管理应用程序的状态。在store定义state来存储数据,mutations来定义方法来修改state,以及actions来处理异步操作。你还可以使用getters来计算属性。这些都是Vuex的核心概念。 ```typescript import { createStore, Commit } from 'vuex' interface State { // 定义状态数据 } const store = createStore<State>({ state: { // 设置初始状态数据 }, mutations: { // 定义修改状态数据的方法 }, actions: { // 处理异步操作的方法 }, getters: { // 计算属性 } }) export default store ``` 3. 在Vue应用程序的入口文件,将store注入到Vue实例,使其在整个应用程序可用。 ```typescript import { createApp } from 'vue' import App from './App.vue' import store from './store' const app = createApp(App) app.use(store) app.mount('#app') ``` 4. 现在你可以在Vue组件使用Vuex来访问和修改状态数据了。可以使用`this.$store.state`来访问state数据,使用`this.$store.commit`来调用mutations方法,使用`this.$store.dispatch`来调用actions方法。你还可以使用`this.$store.getters`来访问计算属性。 ```typescript import { defineComponent } from 'vue' import { useStore } from 'vuex' export default defineComponent({ setup() { const store = useStore() // 访问state const stateData = store.state // 调用mutations方法 store.commit('mutationMethod', payload) // 调用actions方法 store.dispatch('actionMethod', payload) // 访问getters计算属性 const computedData = store.getters.getComputedData return { stateData, computedData } } }) ``` 总结起来,通过在Vue 3使用Vuex来实现数据的持久化,你需要安装并配置Vuex的最新版本,创建一个Vuex store来管理状态数据,将store注入到Vue应用程序,然后在组件使用Vuex来访问和修改状态数据。使用这种方式,可以方便地在Vue应用程序实现数据的持久化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [09 Vue3 vuex数据共享&持久化&TS](https://blog.csdn.net/weixin_42149982/article/details/120018204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [hb-store:使用Vue + vuex + TS + [Vuex持久性]的State Persistence演示应用程序...](https://download.csdn.net/download/weixin_42122838/15265832)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [基于java+vue2+mysql实现的图书管理系统(附带项目启动书,实施书等以及sql文件) 可用于业设计 假期设计 小组...](https://download.csdn.net/download/weixin_45395283/88247344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值