实战篇:(十五)深入使用 Vite + Vue3 + TypeScript 实现 Todo List 状态管理:从组件通信到 Vuex

实战篇:(十五)深入使用 Vite + Vue3 + TypeScript 实现 Todo List 状态管理:从组件通信到 Vuex

引言

在现代前端开发中,随着项目的复杂性逐渐增加,组件间通过 propsevents 进行通信的方式在大型项目中显得捉襟见肘。Vuex 作为 Vue 的官方状态管理库,能够帮助开发者集中管理应用的全局状态,在多个组件间保持一致性,提升项目的可维护性。

结合 TypeScript,可以为项目中的状态管理提供强大的静态类型检查功能,从而减少错误并提高代码的可读性和可维护性。在这篇文章中,我们将基于 Vite、Vue3 和 TypeScript 实现一个 Todo List 项目,并通过引入 Vuex 实现状态管理的优化。

项目结构

首先,我们回顾一下当前 Todo List 项目的结构,并准备加入 Vuex 来进行状态管理。

├── src
│   ├── components
│   │   ├── TodoItem.vue
│   │   ├── TodoList.vue
│   ├── store
│   │   ├── index.ts
│   ├── App.vue
│   ├── main.ts
├── package.json

在这个项目中,我们新增了 store 目录,用于管理 Vuex 的状态。在后续步骤中,将展示如何使用 Vuex 对 Todo 项目状态进行集中管理。

安装与配置 Vuex

1. 安装 Vuex

首先,我们需要安装 Vuex,在项目根目录下运行以下命令:

npm install vuex@next

2. 创建 Vuex Store

src/store/index.ts 中配置 Vuex Store,用来管理项目中的状态。在本例中,TodoItem 包含三个属性:idtextcompleted,分别代表每个 Todo 项的唯一标识、内容和是否完成。

import {
    createStore } from 'vuex';

interface TodoItem {
   
  id: number; // Todo 项目的唯一标识
  text: string; // Todo 项目的内容
  completed: boolean; // Todo 项目的完成状态
}

interface State {
   
  todos: TodoItem[]; // 管理 Todo 项目列表的状态
}

export const store = createStore<State>({
   
  state: {
   
    todos: [] // 初始状态为空数组
  },
  mutations: {
   
    // 添加新的 Todo 项目到状态
    addTodo (state, todo: TodoItem) {
   
      state.todos.push(todo);
    },
    // 切换 Todo 项目的完成状态
    toggleTodo (state, id: number) {
   
      const todo = state.todos.find(item => item.id 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈探索者chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值