其他分享
首页 > 其他分享> > Vue3 父子组件互相触发方法

Vue3 父子组件互相触发方法

作者:互联网

父组件

<template>
  <el-button type="primary" @click="faEvent">父组件</el-button>

  <hr />

  <!-- 父2子 步骤 1. 定义ref -->
  <!-- 子2父 步骤 3. 父组件创建自定义事件 -->
  <SonCpt ref="sonRef" @childEvent="childEvent" />
</template>

<script>
import { ref } from "vue";
import SonCpt from "./son.vue";

export default {
  components: { SonCpt },
  setup() {
    // 父2子 步骤 2. 获取引用
    const sonRef = ref();
    const faEvent = () => {
      // 父2子 步骤 4. 在某个时机触发子组件方法
      sonRef.value.faEvent("我是写在index组件的方法");
    };

    // 子2父 步骤 4. 父组件创建对应的方法
    const childEvent = (v) => {
      console.log("index里面的函数", v);
    };

    // 父2子 步骤 3. 导出引用, 不导出获取的引用是undefined
    // 子2父 步骤 7. 父组件导出方法
    return { sonRef, faEvent, childEvent };
  },
};
</script>

<style>
</style>

 

子组件

<template>
  <el-button type="danger" @click="childEvent">子组建</el-button>
</template>

<script>
export default {
  props: ["msg"],
  // 子2父 步骤 1. 结构emit
  setup(props, { emit }) {
    // 父2子 步骤 5. 自组建定义方法
    const faEvent = (v) => {
      console.log("子组建的方法, 接收到的内容为:" + v);
    };

    const childEvent = () => {
      // 子2父 步骤 2.使用emit触发父组件方法
      emit("childEvent", "我是写在son里面的msg");
    };

    // 父2子 步骤 6. 自组建需要导出该方法
    return { faEvent, childEvent };
  },
};
</script>

<style>
</style>

 

标签:触发,const,faEvent,步骤,Vue3,组件,childEvent,emit
来源: https://www.cnblogs.com/fmg0224/p/16439720.html