热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue3使用vuex实现页面实时更新数据实例教程(setup)_vue.js

在前端开发中往往会遇到页面需要实时刷新数据的情况,给用户最新的数据展示,这篇文章主要给大家介绍了关于vue3使用vuex实现页面实时更新数据(setup)的相关资料,

前言

我项目中使用ws获取数据,因为数据是不断更新的,vue页面只更新一次就不更新了,然后暂时只能想到vuex来保存更新状态,页面监听数据实现实时更新。下面是我测试时用的数据,没有用ws,用的是定时器模拟定时发送数据。

1.项目引入vue


npm i vuex

2.main.js引入vuex


import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
//vuex
import store from './store/index.js'
import * as echarts from 'echarts'
const app = createApp(App)
// 全局挂载echarts
createApp(App).config.globalProperties.$echarts = echarts
createApp(App).use(store).mount('#app')

3.新建store文件夹

index.js里写vuex

import { createStore } from 'vuex'
const store = createStore({
state: {
iotData: {},
count: 0,
},
getters: {
getStateCount: function (state) {
console.log('想发火啊');
return state.iotData;
}
},
mutations: {
addCount(state, payload) {
state.count += payload
},
setIOTData(state, data) {
state.iotData = data
console.log('setIOTData方法', state.iotData);
},
updateIOTTagConfig(state, data) {
//重点,要不然页面数据不更新
state.iotData=null
state.iotData = data
console.log(state.iotData, '进入mutations');
},
},
actions: {
asyncAddStoreCount(store, payload) { // 第一个参数是vuex固定的参数,不需要手动去传递
store.commit("addCount", payload)
},
asyncupdateIOTTagConfig({ commit, state }, data) {
commit('updateIOTTagConfig', data)
},
},
modules: {
}
})
export default store

3.在传输数据的页面引入vuex (api.js)

(注意,这里我用的是定时器,另外不要在意这么多方法传这个数组,你也可以就一个方法里使用vuex,我这个就是测试写的)

let timer
import store from "../store/index";
export function myStopEcharts() {
clearTimeout(timer)
}
export function startEcharts() {
timer = setInterval(() => {
var ydata1 = []
for (let i = 0; i <1; i++) {
ydata1.push({ 'id': Math.round(Math.random() * 20), 'serialNumber': 2001, 'time': 2022 })
}
jj(ydata1)

}, 2000)
}
function jj(ydata1) {
const messageList = ydata1
hh(messageList)
}
function hh(messageList) {
runExit(messageList)
}
function runExit(message) {
exit(message)
}
var exitArr = []
function exit(data) {
exitArr.push(...data)
if (exitArr.length > 20) {
exitArr.splice(0,17)
// console.log(s,exitArr,'pos');
}
store.dispatch('asyncupdateIOTTagConfig',exitArr)
}

4.渲染页面





代码可能有点乱,不过能实现效果。

总结


推荐阅读
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 1.移除consol.log()的babel插件安装:npmibabel-plugin-transform-remove-console-D配置:babel.config.js:这 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • RN即ReactNative基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,css,js,当然如果比较急,那就直接上手吧,毕竟用学习前面基础的时间,R ... [详细]
  • arcgis for js api 的outStatistics请求遇到的问题Error: Error performing query operation
    Error:Errorperformingqueryoperation这个问题在查询arcgisserver服务的时候可能经常会遇到,大部分时候可能都是因为数据量太大 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • ReactJSUIAnt设计空组件原文:https://w ... [详细]
author-avatar
yyjj7212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有