当前位置: 首页 > news >正文

《Pinia实战》8.核心概念 更真实的示例

欢迎观看《Pinia实战》视频课程

    1. 更真实的示例

这是一个更完整的 Pinia API 示例,在 JavaScript 中也使用了类型提示。对于某些开发者来说,可能足以在不进一步阅读的情况下直接开始阅读本节内容,但我们仍然建议你先继续阅读文档的其余部分,甚至跳过此示例,在阅读完所有核心概念之后再回来。

js

import { defineStore } from 'pinia'

export const useTodos = defineStore('todos', {

  state: () => ({

    /** @type {{ text: string, id: number, isFinished: boolean }[]} */

    todos: [],

    /** @type {'all' | 'finished' | 'unfinished'} */

    filter: 'all',

    // 类型将自动推断为 number

    nextId: 0,

  }),

  getters: {

    finishedTodos(state) {

      // 自动补全! ✨

      return state.todos.filter((todo) => todo.isFinished)

    },

    unfinishedTodos(state) {

      return state.todos.filter((todo) => !todo.isFinished)

    },

    /**

     * @returns {{ text: string, id: number, isFinished: boolean }[]}

     */

    filteredTodos(state) {

      if (this.filter === 'finished') {

        // 调用其他带有自动补全的 getters ✨

        return this.finishedTodos

      } else if (this.filter === 'unfinished') {

        return this.unfinishedTodos

      }

      return this.todos

    },

  },

  actions: {

    // 接受任何数量的参数,返回一个 Promise 或不返回

    addTodo(text) {

      // 你可以直接变更该状态

      this.todos.push({ text, id: this.nextId++, isFinished: false })

    },

  },

})

http://www.dtcms.com/a/155327.html

相关文章:

  • 光谱相机如何提升目标检测与识别精度
  • Babylon.js 材质统一转换指南:将 AssetContainer 中的所有材质转换为 PBRMetallicRoughnessMaterial
  • 【Go语言】RPC 使用指南(初学者版)
  • Python-Agent调用多个Server-FastAPI版本
  • 常见缓存淘汰算法(LRU、LFU、FIFO)的区别与实现
  • 居然智家启动“2025北居奥森健跑活动“以运动诠释企业健康共生理念
  • shell命令一
  • KafkaSpark-Streaming
  • 【论文阅读】平滑量化:对大型语言模型进行准确高效的训练后量化
  • Git 进阶使用指南
  • POI从入门到上手(一)-轻松完成Apache POI使用,完成Excel导入导出.
  • AD盖白油(一面是板颜色,一面是白色丝印)
  • 自动清空 maven 项目临时文件,vue 的 node_modules 文件
  • K8S Service 原理、案例
  • 【AIGC】基础篇:VS Code 配置 Python 命令行参数调试debug超详细教程
  • MySQL日期函数的详细教程(包含常用函数及其示例)
  • JavaWeb:JavaScript
  • 苹果新规生效:即日起不再接受iOS 17 SDK编译的应用提交
  • [密码学实战]商用密码产品密钥体系架构:从服务器密码机到动态口令系统
  • 源码分析之Leaflet中Icon类
  • 【EDA】EDA中聚类(Clustering)和划分(Partitioning)
  • 《算法笔记》4.2小节——算法初步->哈希
  • 观测云数据在Grafana展示的最佳实践
  • Milvus(7):Schema、主字段和自动识别
  • Apache Spark 源码解析
  • Go 语言 TCP 端口扫描器实现与 Goroutine 池原理
  • Modbus主从通信功能码与报文格式
  • 如何在SpringBoot中通过@Value注入Map和List并使用YAML配置?
  • 电子学会—青少年软件编程 python一级等级考试真题—2025年03月
  • 20242817-李臻-课上测试:信号处理