Vue3+tsx(watch监听)

本文记录了在Vue中使用watch监听数据变化的场景,特别是在setup语法下的使用方式。通过watch监听Data对象的变化,并在数据更新时执行相应操作。在render函数中,Slider组件会改变Data.data,因此需要确保Data是响应式的。本文旨在解决不同环境下watch语法不一致的问题,方便日后查阅。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天又用到了监听watch,因为用的次数不多,每次都有些格式的遗忘,都会往前面去找之前怎么写的,所以特地记录一下,以后都往这儿翻就完事儿了

监听数据的变化watch

setup(props){
    let Data = reactive({id:props.option.value,data:0});

    watch(Data,(newValue)=>{
      console.log('Data',newValue)
    })

    return {Data}
  },



render() {
    const { option, item, form, Data } = this;
    return h(<div class="rounded-lg w-full my-1 py-2 px-2 bg-gray-50 ">
      <div class="mb-3">{option.content}</div>
      <div class=" flex flex-row justify-center my-2 ">
        {
          item.scores[option.value] ?
            <div class="w-12 py-1 rounded-xl bg-green-200 mr-5 text-center">{item.scores[option.value]}</div> :
            <div class="w-12 py-1 rounded-xl bg-gray-200 mr-5 text-center">0</div>
        }

        <div class="w-full flex items-center">
          <div class="w-full">
            <Slider barHeight="16px" activeColor="#30C2B7" v-model={Data.data} max={10} onUpdate:modelValue={item.onChange(option)} />
          </div>
        </div>
      </div>
    </div>);
  }

 在setup中先申明响应式对象Data 然后再不断watch Data的变化 从而做出操作

render中的Slider会导致Data.data数据改变 所以一定得设置Data为响应式的 否则无法监听到

主要是不同的环境有些watch的格式多多少少有些差异 特此记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值