vue3如何监听 props 的变化?

背景

实际开发过程中,当需要通过 watch 监听传入的 props 的某个值的变化,来动态改变组件内部的样式,实现方式如下:

export default {
  name: 'countdown',
  props: {
    showBox: {
      type: Boolean,
      required: true,
      default: false
    },
  },
  setup (props, { emit }) {
   // !!!此种方式不可监听到变化
    const showBox2 = toRefs(props.showBox)
    watch(showBox2, (val) => {
      if (val) {
        // startCountdown()
      } else {
         // clearCountdown()
      }
    })
    // 下面方式可以监听到值改变
    watch(() => props.showBox, (val) => {
      if (val) {
        // startCountdown()
      } else {
        // clearCountdown()
      }
    })
  }
}

 

posted @ 2023-09-05 17:52  蓓蕾心晴  阅读(1836)  评论(0编辑  收藏  举报