Joh*_*nes 6 javascript websocket vue.js
我使用websockets和vuejs构建了一个web应用程序.
在DOM中,我想循环遍历vuejs处理的数据.然而,在建立websocket连接并且已经接收到数据之后,在时间线中稍后设置数据.
到那时(大约0.5秒),你可以在网站上看到vuejs的胡子代码,然后看到它闪烁并添加真实数据.
我从websocket连接接收数据时创建ViewModel,如下所示:
onMessage: function (e) {
new Vue({
el: '#messages',
data: {
messages: e.data
}
});
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过在页面加载时初始化ViewModel,并在以后设置数据:
var vms = {
messages: new Vue({
el: '#messages',
data: {
messages: {
}
}
})
};
Run Code Online (Sandbox Code Playgroud)
在onMessageWebSocket的事件:
var vm = vms.messages;
vm.$data = { messages: body };
Run Code Online (Sandbox Code Playgroud)
但问题是,在vm初始化之前仍有延迟.顺序是这样的:
页面加载 - >可见胡子代码 - >胡须代码被隐藏,因为数据被设置为空对象 - >实际数据显示在websocket收到之后
关于这个问题的任何想法/最佳实践?
小智 16
在我阅读api doc之前,我遇到了同样的问题.这是v-cloak指令的链接!
HTML:
<div id="demo" v-cloak><p>{{ test }}</p></div>
Run Code Online (Sandbox Code Playgroud)
CSS:
[v-cloak] {display: none}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5379 次 |
| 最近记录: |