uniapp vue3项目定义全局变量,切换底部babar时根据条件刷新页面

server/2025/3/18 19:15:18/

前言

uniapp项目中,每个tabbar页面来回点时候,不会触发页面更新。但是有时页面上有数据发生改变需要更新模版时,就得能及时的通知到页面。如果在onshow生命周期里每次都调用异步请求更新数据,有些不合理,况且页面有时不需要更新。
经过思考,我们可以定义一个全局变量,根据全局变量的值来看是否需要更新数据。

开始

细化需求举例:下图是我的聊天记录列表。
当我有新的聊天时,点击“对话”tabbar需要更新此列表。
当无新聊天时,点击此“对话”tabbar不做任何动作。
在这里插入图片描述

首先定义全局变量:
根目录/src/utils/globleState.js:

import { ref,reactive } from "vue"let gloableState = reactive({chatListIsRefresh:false,  // 是否需要刷新聊天记录列表collectListIsRefresh:false
})
export function useGloableState(){return gloableState
}

在聊天记录页面这样用:
src/pages/chatList/chatList.vue

<script setup>import {useGloableState} from '@/utils/gloableState.js'let gloableState = useGloableState()getChatList(){let res = await ... // 异步请求取最新的聊天记录列表gloableState.chatListIsRefresh = false; // 更新全局变量,表示聊天列表已是最新}onShow(() => {if(gloableState.chatListIsRefresh){ // 如果检测到需要更新聊天记录列表才重新请求数据getChatList() // 重新请求数据}});
</script>

在聊天页面,如果有新聊天,去更新全局变量为true,表示有新聊天,需要刷新聊天记录列表:
src/pages/chat/chat.vue

<script setup>import {useGloableState} from '@/utils/gloableState.js'let gloableState = useGloableState()chat(){... // 此处为发送聊天逻辑gloableState.chatListIsRefresh = true; // 更新全局变量,表示聊天列表需要更新}
</script>

后记

在此记录问题解决方法,也给需要的朋友们一个思路。有问题可以留言我们一起讨论。


http://www.ppmy.cn/server/176030.html

相关文章

界面组件DevExpress WPF中文教程:Grid - 如何显示嵌套栏(Bands)?

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

SEO优先级矩阵:有限资源下的ROI最大化决策模型

SEO优先级矩阵&#xff1a;有限资源下的ROI最大化决策模型 引言 在数字营销领域&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是提升网站流量和转化率的关键策略之一。然而&#xff0c;SEO的实施往往需要投入大量的时间和资源&#xff0c;尤其是在资源有限的情况下&a…

DeepSeek:从入门到精通

DeepSeek是什么&#xff1f; DeepSeek是一家专注通用人工智能&#xff08;AGI&#xff09;的中国科技公司&#xff0c;主攻大模型研发与应 用。DeepSeek-R1是其开源的推理模型&#xff0c;擅长处理复杂任务且可免费商用。 Deepseek可以做什么&#xff1f; 直接面向用户或者支持…

logparser日志分析详解

无问社区-官网&#xff1a;http://www.wwlib.cn 本期无人投稿&#xff0c;欢迎大家投稿&#xff0c;投稿可获得无问社区AI大模型的使用红包哦&#xff01; 无问社区&#xff1a;网安文章沉浸式免费看&#xff01; 无问AI大模型不懂的问题随意问&#xff01; 全网网安资源智…

VLLM专题(二十六)—使用 Docker

使用 vLLM 的官方 Docker 镜像 vLLM 提供了一个官方 Docker 镜像用于部署。该镜像可用于运行与 OpenAI 兼容的服务器,并可在 Docker Hub 上获取,名称为 vllm/vllm-openai。 docker run --runtime nvidia --gpus all \-v ~/.cache/huggingface:/root/.cache/huggingface \--…

Bash中关于制表符\t站位情况说明

1、首先制表符\t占多少个空格并不是固定不变的。 2、不同系统会以4个或8个空格为基本长度&#xff0c;记为tabL&#xff0c;则实际的缩进长度: length |n - tabL| % tabL 计算机会把制表符/t前的字符串转化成每tabL一组&#xff0c;其中n表示制表符/t最前面一组字符长度。 …

【Unity网络同步框架 - Nakama研究(二)】

Unity网络同步框架 - Nakama研究(二) 虽说官方文档和网站以及论坛建立的不错&#xff0c;而且还有中文翻译且质量也不错&#xff0c;但是总会遇到一些词不达意&#xff0c;说了但是依旧没懂的部分&#xff0c;甚至问AI也问不出什么东西&#xff0c;所以需要有一些比较明显的博客…

Powershell和bcp工具实现带多组参数和标签的SQL Server数据库批量数据导出程序

设计一个基于多个带标签SQL模板作为配置文件和多组参数的Powershell代码程序和bcp工具&#xff0c;实现根据不同的输入参数&#xff0c;自动批量地将SQL Server数据库的数据导出为CSV文件到指定目录上&#xff0c;标签和多个参数&#xff08;以“_”分割&#xff09;为组成导出…