• vue3中的组件通讯


    父子通讯

    最常用的父子间通讯方法,

    1:父传子数据:defineProps接收

    2:子传父方法:defineEmits抛出

    3:ref,在父组件中,使用ref,调用子组件的方法

    具体使用方法,看以下栗子:

    子组件 child.vue

    <button @click="giveParentMenthed">把这个方法抛到父组件</button>
    <script setup>
       import {defineEmits} from 'vue'
     
       父传子中,子组件接收的参数的方法
       const prop =defineProps({
          data:{
              type:String,
              default:""
          }
       })
       子传父:的方法  
      const emit = defineEmits(['ParentMenthed']); //因为vue3中,遵循按需引入,所以defineEmits在使用时需要引入
      const giveParentMenthed=()=>{   
         emit(
    'ParentMenthed','这是子组件跑出来的点击事件,给父组件的数据')   
      }

      这是让父组件使用ref调用的一个方法
       const refClick = () => {
          console.log("这是父组件使用ref来触发的事件");
       };
       注:这里要注意,在script中使用了setup语法糖的话,一定要使用defineExpose这个方法,将,方法抛出去,否则父组件用不了
       defineExpose({
          refClick
       });
    </script>

    父组件 parent.vue

    <child ref='childRefs' :data="childD" @ParentMenthed="giveParentMenthed"></child>
     <button @click="refClickBtn">使用ref获取子组件方法</button>
    <script setup>
      import child from './child.vue' //引入子组件

       父传子的数据
       const childD=ref('这是父组件传过来的')
     
      子传父跑出来的方法
       const giveParentMenthed=(msg:any)=>{
          console.log(msg) //console:‘这是子组件跑出来的点击事件,给父组件的数据’
       }
     
       使用ref调用子组件的方法
        const childRefs = ref();
       const refClickBtn = () => {
          console.log(childRefs.value)
          childRefs.value.refClick();
       };
    </script>
  • 相关阅读:
    《ASP.NET Core 高性能系列》致敬伟大的.NET斗士甲骨文!
    ThreadLocal<T>的是否有设计问题
    从.NET和Java之争谈IT这个行业
    自建型呼叫中心
    托管型呼叫中心
    数字语音记录仪3.0
    模拟电话录音系统2.0
    easyui-combobox 下拉菜单 多选 multiple
    利用easyui-combotree实现 下拉菜单 多选功能(带多选框)
    eclipse项目导入 idea中
  • 原文地址:https://www.cnblogs.com/yixiongqiang/p/16257666.html
Copyright © 2020-2023  润新知