我正在try 用Vue构建一个简单的聊天应用程序.js.我的问题是,当写入新消息时,消息区域需要滚动到底部.
我用v-for指令循环浏览消息.v-for更新DOM时是否会发生事件?
我这样做是为了让message area div监听组件的消息array.我try 过这样做,在将消息附加到数组的同一个函数中,它会将消息区域div的scrollTop设置为99999.但问题是v-for没有更新DOM,所以它不会滚动到正确的点.
我正在try 用Vue构建一个简单的聊天应用程序.js.我的问题是,当写入新消息时,消息区域需要滚动到底部.
我用v-for指令循环浏览消息.v-for更新DOM时是否会发生事件?
我这样做是为了让message area div监听组件的消息array.我try 过这样做,在将消息附加到数组的同一个函数中,它会将消息区域div的scrollTop设置为99999.但问题是v-for没有更新DOM,所以它不会滚动到正确的点.
我有一个类似的问题,但我使用vue.nextTick()
的不同方法.我需要确保v-for
已经完成渲染,因为组件不会立即重新渲染,当队列为空时,它将在下一次"勾选"时更新.
Vue.component('message', {
data() {
return {
message: []
}
},
methods: {
updateMessageArray(newMessage) {
this.message.push(newMessage);
this.$nextTick(() => {
// Scroll Down
})
}
}
})
https://vuejs.org/v2/api/#Vue-nextTick
https://vuejs.org/v2/guide/reactivity.html#Async-Update-Queue