vue3.使用setup语法糖监听父组件的变化。父子组件传值,监听,计算属性

setup语法糖就是把setup写在script标签里
子组件

<script setup>

import {
  ref,
  computed,
  onBeforeMount,
  onMounted,
  getCurrentInstance,
  template,
  defineProps,
  defineEmits,
  watch
} from "vue";
const props = defineProps({
  message: {
    type: Object,
  },
});

const emits = defineEmits(["next"]);
let _hoverStyle = computed(() => {
  return {
    top: 1, 
    opacity:  '0'
  }
})
watch(
    props.message ,
    (newValue, oldValue)=> {
      console.log( newValue)
      这里如果想要访问当前页面的一个函数的话必须保证函数在watch这段代码之前,否则会抱函数underfined。如果去掉immediate: true 那么函数位置随意。但是刚进入页面的时候这个函数是不执行的,你必须在onMount里面再去访问一次这个函数。
    },
    //可选immediate: true马上执行
    { deep: true, immediate: true },
);

或者是这样写。

watch(
    () => props.message,
    (newValue, oldValue)=> {
      disposeData(newValue)//初始化已有数据
    },
);

click(){

emit('next',{传回父组件的参数})

}

父组件

<son :message="message"   @next="next"></son>

next(e){

子组件传来的值e

}

Vue3中,可以使用watch来监听数据的变化。你可以在setup函数中使用watch来定义监听器。例如,你可以通过引入watch和ref来创建一个变量,并使用watch来监听这个变量的变化。在watch的回调函数中,你可以执行相应的操作。以下是一个示例代码: ```javascript import { watch, ref } from "vue"; setup() { const brand = ref("Apple"); watch(brand, (newVal) => { console.log(newVal); // 在这里执行你想要的操作 }, { deep: true, immediate: true }); return { brand }; } ``` 在上面的代码中,我们创建了一个名为brand的变量,并使用watch来监听它的变化。当brand的发生变化时,watch的回调函数会被执行,并将新的传递给回调函数。你可以在回调函数中执行你想要的操作。需要注意的是,deep选项用于深度监听对象的变化,而immediate选项用于在初始渲染时立即执行监听。 希望这可以帮助到你!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【VUE3】setup语法糖(computed 使用+watch监听)](https://blog.csdn.net/seimeii/article/details/126118041)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [vue3.使用setup语法糖监听组件变化父子组件传值监听计算属性](https://blog.csdn.net/qq_33769914/article/details/127303500)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值