Vue 中如何定时展示一个动态的数据?
后端 websocket 向前端不定时的推数据(每次一条)。
前端拿到数据要求每一条展示 5s。
请问下在 Vue 中大概是个什么样的实现思路。
function handleReceiveMessage(e) { let data = JSON.parse(e.data);
setTimeout(() => {
// xxxxxx
}, timer.value);
timer.value += 5000;
}
如上有两个问题:
- 什么时机把 timer 重置为 0。
- 最后一次如何控制只展示 5s。
回答:
- Vue 是 MVVP 框架,MVVM 的核心是:开发者负责编写数据到视图的映射,然后只维护数据
所以具体到你的需求,就是:
- 先完成消息数据到显示推送视图的映射
- 然后将 ws 得到的数据放进数组,vue 就会完成渲染
- 然后适当处理动画效果
回答:
data(){ message: 'hello'
}
//let newMessage = websock的数据
setTimeout(() => {
this.message = newMessage
}, 5000);
回答:
// 获取数据的函数 getData() {
.....
}
// 定时器
time() {
return setTimeout(()=>{
this.getData()
},5000)
}
watch: {
list() {
this.time()
}
}
destroyed() {
clearTimeout(this.time)
}
监听list只要它变化就去触发定时器
以上是 Vue 中如何定时展示一个动态的数据? 的全部内容, 来源链接: utcz.com/p/933319.html