vue页面重绘导致第三方组件重新渲染的问题?

// 父组件
<div>
 <child :item="item" />
<div>
  
const item = ref(0);
setInterval(() => {
    item.value += 1
}, 1000)
  
// 子组件
<div>
  <div>{{ props.item }}</div>
  <van-calendar
    ref="calendar"
    :poppable="false"
    :max-date="new Date()"
    switch-mode="year-month"
    :show-confirm="false"
    @select="handleCalendar"
  />
<div>
const props = defineProps({
  item: {
    type: Number,
    required: true
  }
})

image.png
calendar组件每次点上一月之后,都会自动切换回7月,就像是重新渲染了一样?这种情况该如何去处理?

阅读 1.9k
1 个回答

正常情况下calendar组件是不会重新渲染的,有可能是你触发了组件内部的监听导致刷新了。
你检查是你的代码看有没有以下一下可能导致刷新的写法:

1. 试试van-calendar上的max-date不要写new Date(),而是绑定一个data中的变量。
2. 检查van-calendar组件上的属性是否有变化有没有可能导致刷新
 比如绑定的v-model,option之类的属性
3.有key属性导致强制刷新
<child :item="item" :key="item"/>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏