vue实现接口中得数据有变化就要实时得请求获取到最新数据

2023-11-12

1. 使用 sockets 与服务器建立实时通信,接收数据变化推送在 created 生命周期中建立 sockets 连接:

js
created() {
  this.socket = io('someUrl')
  this.socket.on('dataChange', () => {
    axios.get('/someApi').then(res => {
      this.data = res.data
    })
  })
}

服务器端通过 socket.emit('dataChange')推送数据变化消息,前端接收到后立即发起请求获取最新数据。

2. 使用定时器或 watch 监听定期拉取数据

js
created() {
  this.timer = setInterval(() => {
    axios.get('/someApi').then(res => {
      if (res.data !== this.data) {  // 数据有变化
        this.data = res.data
      }
    })
  }, 5000)  // 5 秒定时拉取
}

或者

js
watch: {
  data: {
    immediate: true,  // 初始化立即执行
    handler(newVal) {
      setTimeout(() => {   // 使用定时器,避免频繁请求
        axios.get('/someApi').then(res => {
          if (res.data !== newVal) {
            this.data = res.data
          }
        })  
      }, 5000)
    }
  }
}

通过以上两种方式,我们可以定期主动向接口查询最新数据,判断是否发生变化,变化则更新。

3. 后端主动 push 数据变更消息除了前端定期主动拉取,我们也可以在后端数据更新后,主动通过 webhooks 或 sockets 将数据变更消息 push 给前端,前端接收到消息后发起请求获取最新数据。

这些是实现 Vue 接口数据实时更新的常用方案,你可以根据自己的场景选择使用 sockets、定时器监听或后端主动推送等机制。掌握这几种方式,可以轻松构建需要实时数据同步的应用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue实现接口中得数据有变化就要实时得请求获取到最新数据 的相关文章

随机推荐

  • No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)

    当运行工程出现 错误代码 No architectures to compile for ONLY ACTIVE ARCH YES active arch x86 64 VALID ARCHS armv7 armv7s 时 按照上图 设置选
  • idea中 启动错误: 找不到或无法加载主类 解决办法

    说真的 用了idea后感觉很强大 但是有时候也会有很多坑 最近就遇到一个问题 启动错误 找不到或无法加载主类 刚新建一个util类 写了一个简单的main方法 然后输出一句话 就是这么简单 然后main 方法run的时候报 错误 找不到或无
  • jpg、png、jpeg区别与压缩等知识总结 —— 性能优化篇

    jpeg jpeg是一个国家专家小组 同事也是一种算法名称 而用JPEG算法压缩出来的静态图片文件称为JPEG文件 扩展名通常为 jpg jpe jpeg JPEG文件大体上可以分成两个部分 标记码 Tag 和压缩数据 标记码由两个字节构成
  • 我是如何设计一个包办所有对企政策的城市平台

    它是容纳了一个城市所有政府对企政策的平台 它的非正式代号是 城市主站 它的定位是 只要这个平台部署在某 入口 1 和子站入口 2 恰好对应了 路径的上一层 于是我用最少的元素实现了导航的逻辑完备 一个政策能看和能办是两回事 政策任何时候都可
  • SQL 课后作业答案 练习2 练习6

    Exercise2 1 Find the name and salary of employees in Luton SELECT ename sal FROM emp e dept2020290223 d WHERE loc Luton
  • vue-admin 完全隐藏掉左侧菜单栏

    在 src styles sidebar scss文件中修改第一个 hideSidebar hideSidebar sidebar container sidebar container el menu width 36px importa
  • DBeaver改变字体

    dbeaver的sql编辑区字体小 费眼 想改变字体 在设置中没有改变字体的设置 折腾好半天 发现另一种曲线救国的方式
  • 一周Hard (2021.11.29-2021.12.05)

    862 和至少为 K 的最短子数组 先从朴素的思想去考 枚举当前的前缀和 k k k 那么我们需要找到当前位置之前的满足差大于等于 k k k的最大位置 i
  • 【翻译】什么是 "政策即守则"?

    身份很容易 毕竟 每个人都有一个 认证 可能就更不复杂了 任何使用智能手机的人每天都要认证几十次才能使用它 这甚至还没有涉及银行 工作或社交媒体所需的远程服务 也许正是这种明显的简单性吸引了我在大约五六年前进入身份系统的世界 在这之前的几年
  • python 可视化_提升你的Python可视化编程技能,一文学会图表添加参考线和区域...

    前两次呢 已经和大家讨论了关于Python数据可视化的经典库matplotlib相关的东东 已经介绍了plot scatter xlim ylim xlabel ylabel 和grid 这几个函数哦 下面呢 咱们继续前两节的内容 继续和大
  • linux————pxe网络批量装机

    目录 一 概述 什么是pxe pxe组件 二 搭建交互式pxe装机 一 配置基础环境 二 配置vsftpd 三 配置tftp 四 准备pxelinx 0文件 引导文件 内核文件 一 准备pxelinux 0 二 准备引导文件 内核文件 五
  • 让 AI 真正读懂人类语言,5分钟搞懂 word embedding 技术

    大家好啊 我是董董灿 在学习自然语言处理 NLP Natural Language Processing 时 最先遇到的一个概念 可能就是词嵌入 word embedding 了 词嵌入 是让AI真正理解人类自然语言的技术 看完本文再回过头
  • python+requests接口自动化测试

    原来的web页面功能测试转变成接口测试 之前大多都是手工进行 利用postman和jmeter进行的接口测试 后来 组内有人讲原先web自动化的测试框架移驾成接口的自动化框架 使用的是java语言 但对于一个学java 却在学python的
  • 关于文件上传

    目录 1 文件上传的原理 2 文件上传到本地服务器 2 1 添加上传的依赖 2 2 创建一个页面 2 3 在springmvc中配置文件上传解析器 2 4 创建upload01接口方法 3 elementui vue axios完成文件上传
  • SpringBoot,Controller 注解

    SpringBoot Controller 注解 RequestMapping ping PathVariable RequestMapping value id method RequestMethod GET public List
  • Python·Jupyter Notebook各种使用方法

    1 更改Jupyter notebook的工作空间 Jupyter的工作空间在哪里指定 在cmd中输入jupyter notebook generate config 如果该配置文件已经存在 那么 会出现如下信息 从中可以见到配置文件存在的
  • 交叉验证--关于最终选取模型的疑问

    看最下面对这个回答 2018 06 21 很多书上都说了交叉验证的方法 还有留出法的评估方法 西瓜书 他们也都说了多次抽样然后多次评估取平均的策略 这样是为了充分利用这个样本集的分布 这里有一个问题 那就是 既然是取平均 那这个分类器到底是
  • JAVA设计模式之Chain-of-Responsiblility模式

    当一个请求可以被多个对象处理 同时又无法确定到底有谁来处理该请求 这时 我们就需要让该请求在这些对象之间一个个的接力 如果当前对象可以处理请求则处理它 否则 传递给下一个对象处理 这就是责任链模式的思想 责任链模式的组件结构图如下 可以看出
  • Python+Selenium_UI自动化操作(8)——获取页面元素的标签+尺寸

    UI自动化 获取当前页面某元素的标签 尺寸 语法 1 标签名 tag name 2 size size 返回一个字典 包括height width class TestGetElementInfo unittest TestCase def
  • vue实现接口中得数据有变化就要实时得请求获取到最新数据

    1 使用 sockets 与服务器建立实时通信 接收数据变化推送在 created 生命周期中建立 sockets 连接 js created this socket io someUrl this socket on dataChange