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

微信小程序pinia的应用

情景:院校列表的关注状态的实时更新

新建一个ts文件存储关注状态,用于集中管理用户“已关注院校”的相关状态和操作

import {definStore} from 'pinia';
import type { College_records } from '@/types/university';export const useFocusCollegeStore = defineStore('focusCollege',{
//定义一个响应式状态state:() => ({
//保存用户当前已关注的所有院校信息focusCollegeList: [] as College_records[],}),actions: {
//替换整个关注列表为新数组setFocusCollegeList(list: College_records[]) {this.focusCollegeList = list;},
// 向关注列表添加一个新的院校addFocusCollege(college: College_records) {this.focusCollegeList.push(college);},
//从列表移除某个院校removeFocusCollege(code: string) {this.focusCollegeList = this.focusCollegeList.filter(item => item.code !== code);},},
});
  • 只展示已关注的院校列表
    import { useFocusCollegeStore } from '@/stores/modules/useFocusCollegeStore';const focusCollegeStore = useFocusCollegeStore();const handleClickFocus = async (item:items) => {//....其它代码focusCollegeStore.removeFocusCollege(item.code);
    }

  • 在展示所有院校的列表里同步关注状态
    import { useFocusCollegeStore } from '@/stores/modules/useFocusCollegeStore';const focusCollegeStore = useFocusCollegeStore();//获取已关注院校的列表
    const fetchFocusCollegeList = async() => {//....其他代码const response = await getFocusCollege();focusCollegeStore.focusCollegeList = response.items || [];console.log('已关注院校:', focusCollegeStore.focusCollegeList);
    }//根据已关注列表更新院校关注状态
    const updateStatus = () =>{//...其他代码
    focusList.value = focusList.value.map(item => {const isBookmarked = focusCollegeStore.focusCollegeList.some(focusItem => focusItem.code === item.code);return {...item,bookmark: isBookmarked};
    };//监听store变化并自动更新
    watch(() => focusCollegeStore.focusCollegeList,() => {updateBookmarkStatus();},{ deep: true }
    );

http://www.xdnf.cn/news/4533.html

相关文章:

  • 对redis的深入了解
  • 【每日刷题】第2天
  • 互联网大厂Java求职面试:AI集成与云原生架构设计
  • Go 面向对象,封装、继承、多态
  • 拆解 Prompt 工程:五大场景驱动 DeepSeek 超越 ChatGPT
  • AUTOSAR图解==>AUTOSAR_SWS_WirelessEthernetTransceiverDriver
  • 【AI入门】CherryStudio入门3:结合FastMCP创建自己的MCP服务,实现哔哩视频查询
  • 梅特卡夫法则——AI与思维模型【97】
  • 单片机-STM32部分:7、GPIO输入 按键
  • ()初始化 和 { }初始化
  • PostgreSQL中“参数默认值实现伪重载“详解
  • Unable to ping server at localhost:1099解决
  • 【Linux庖丁解牛】—程序地址空间【进程地址空间 | 虚拟地址空间】
  • 每日一题洛谷P1025 [NOIP 2001 提高组] 数的划分c++
  • Python打卡 DAY 18
  • MySQL核心机制:日志系统、锁机制与事务管理的深度剖析
  • 六个仓库合并为一个仓库,保留master和develop分支的bat脚本
  • llama-Factory不宜直接挂接Ollama的大模型
  • 互联网大厂Java求职面试:分布式系统中向量数据库与AI应用的融合探索
  • FastDFS,分布式文件存储系统,介绍+配置+工具类
  • upload-labs靶场通关详解:第一关
  • 远程访问代理+内网穿透:火山引擎边缘网关助力自部署模型公网调用与全链路管控
  • 阿维塔汽车CAN总线数据适配技术解析与免破线数据采集实践
  • 模型中台建设全流程指南
  • [逆向工程]什么是 Process Explorer
  • 智慧系统搭建平台有哪些?2025智慧系统搭建平台推荐?智慧系统搭建平台TOP10全面解析
  • ERP源码?ERP系统是什么?能够解决什么问题?
  • 使用 Python 与 Java 实现接入 AI 大模型的 MCP 协议:原理与实战
  • 「动态规划」线性DP:股票问题合集 / LeetCode 121|122|123|188 (C++)
  • 密码学基石:哈希、对称/非对称加密与HTTPS实践详解