我正在尝试建立打字指示器。一切正常。但是我发现在输入框中写太慢了。
我正在这样使用
<Input type="textarea" :autosize="{minRows: 2, maxRows: 6}" placeholder="Type a message..."
v-model="u.myMsg" @on-enter="sendMsg($event,u)" @on-focus="sendSeenInfo(u)"
@on-keypress="run(true, u.con_id, u.user_id)" @on-blur="stopped(false,u.con_id, u.user_id)"
></Input>
我正在使用vue.js。因此,这两个函数可以按预期工作,但会使键入本身变慢。
在运行功能中,我正在发送一些套接字事件。
任何想法都可以使它变得更好吗? 谢谢
编辑 运行方法
run(type,con_id, uid){
const obj = {
con_id: con_id,
isTyping: true
}
this.sendTypingNoti(1, obj, uid)
},
sendTypingNoti
方法
sendTypingNoti(type, value, uid){
const ws = adonis.Ws()
ws.connect()
const chat = ws.subscribe(`noti:${uid}`)
chat.on('ready', () => {
const data = {
type: type,
input: value
}
chat.emit('message', data)
})
},
停止方法也一样。
答案 0 :(得分:1)
如何使用vue watchers
来为“打字”动画,而不是使用on-keypress
。
Here's一个vue watchers
的示例,它在您按下键时具有“键入”信息。