vue3如何监听 props 的变化?

2023-09-07 08:13:56 浏览数 (2)

背景

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

代码语言:javascript复制
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()
      }
    })
  }
}

0 人点赞