VueJS - 在 div 中打印字符串时的奇怪行为
VueJS - odd behaviour when printing strings within a div
我有一个 vue 组件,可以呈现一些 div,我将用作某些 table 的 header。这些 header 中打印的内容是自动生成的,如下所示:
render (createElement) {
return createElement('div', { class: 'header' },
Array.apply(null, { length: this.initHours.length }).map((i) => {
return createElement('div', { class: 'frame' }, this.getHourIndex())
})
)
}
函数 getHourIndex() 是:
getHourIndex () {
console.log(this.initHours)
const headerData = this.initHours[this.hourIndex]
this.hourIndex++
return headerData
}
它只 运行 遍历一个数组并且 return 每个值。
当我 运行 应用程序时,div 会显示在页面上,并在短时间内显示正确的结果。然后,应用程序的网页在我不做任何事情的情况下重新加载,所有这些 div 都向上移动了几个像素,并显示为空。有人可以向我解释这种行为背后的原因吗?
如果有人遇到类似问题,原因是渲染产生的无限循环,因为我在渲染函数中递增 this.hourIndex。
参考这个post进一步了解:
我有一个 vue 组件,可以呈现一些 div,我将用作某些 table 的 header。这些 header 中打印的内容是自动生成的,如下所示:
render (createElement) {
return createElement('div', { class: 'header' },
Array.apply(null, { length: this.initHours.length }).map((i) => {
return createElement('div', { class: 'frame' }, this.getHourIndex())
})
)
}
函数 getHourIndex() 是:
getHourIndex () {
console.log(this.initHours)
const headerData = this.initHours[this.hourIndex]
this.hourIndex++
return headerData
}
它只 运行 遍历一个数组并且 return 每个值。
当我 运行 应用程序时,div 会显示在页面上,并在短时间内显示正确的结果。然后,应用程序的网页在我不做任何事情的情况下重新加载,所有这些 div 都向上移动了几个像素,并显示为空。有人可以向我解释这种行为背后的原因吗?
如果有人遇到类似问题,原因是渲染产生的无限循环,因为我在渲染函数中递增 this.hourIndex。
参考这个post进一步了解: