在vue中,有时候我们需要重新渲染子组件,例如在本次earn-big-money项目中,问卷页面是一个子组件。当发布任务者发布了问卷,发布者在任务详情处需要查看不同人提交上来的问卷,由于问卷的内容在组件渲染之后就已经固定了,因此切换不同人的问卷重新加载渲染问卷组件。
在这里可以使用v-if。
<v-SurveyViewer v-if="loadSurvey">
</v-SurveyViewer>
当v-if内的条件为false时,组件就会结束渲染,然后再让它为True,就可以重新加载了,但是要注意,不能直接将变量改为false后立即改为true,需要在下一个事件循环“tick”后再修改,因为dom异步更新要在下一个“tick”更新。
this.loadSurvey = false
this.$nextTick(()=>{
this.loadSurvey = true
})