当前位置: 首页 > news >正文

深圳有哪些网站是做餐饮沙龙的福田区网站建

深圳有哪些网站是做餐饮沙龙的,福田区网站建,做教程网站犯法吗,十八款禁用黄台入口app在 Vue 3 和 TypeScript 中,父组件触发子组件事件方法主要有两种方式:使用模板引用(ref) 或 通过自定义事件(emit)。下面是两种方法的详细实现: 方法 1:使用模板引用(Ref…

在 Vue 3 和 TypeScript 中,父组件触发子组件事件方法主要有两种方式:使用模板引用(ref) 或 通过自定义事件(emit)。下面是两种方法的详细实现:


方法 1:使用模板引用(Ref)直接调用子组件方法(推荐)

子组件 ChildComponent.vue

vue

复制

下载

<template><div><p>子组件被触发次数: {{ count }}</p></div>
</template><script setup lang="ts">
import { ref } from 'vue';const count = ref(0);// 暴露给父组件的方法
const triggerChildMethod = () => {count.value++;console.log('子组件方法被触发');
};// 使用 defineExpose 暴露方法
defineExpose({triggerChildMethod
});
</script>
父组件 ParentComponent.vue

vue

复制

下载

<template><div><button @click="handleClick">父组件按钮</button><ChildComponent ref="childRef" /></div>
</template><script setup lang="ts">
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';// 定义子组件的 Ref 类型
const childRef = ref<InstanceType<typeof ChildComponent> | null>(null);const handleClick = () => {if (childRef.value) {childRef.value.triggerChildMethod(); // 直接调用子组件方法}
};
</script>

方法 2:通过自定义事件(Emit)

子组件 ChildComponent.vue

vue

复制

下载

<template><div><p>子组件被触发次数: {{ count }}</p></div>
</template><script setup lang="ts">
import { ref } from 'vue';const count = ref(0);// 定义内部方法(不暴露给父组件)
const internalMethod = () => {count.value++;console.log('子组件方法被触发');
};// 监听父组件传来的事件名(例如 "trigger-child")
defineEmits<{(e: 'trigger-child'): void;
}>();// 暴露方法(可选,如果父组件需要通过 ref 调用)
defineExpose({ internalMethod });
</script>
父组件 ParentComponent.vue

vue

复制

下载

<template><div><button @click="$refs.childRef?.internalMethod()">方式1: Ref 调用</button><button @click="emitEvent">方式2: 事件触发</button><ChildComponent ref="childRef" @trigger-child="childRef?.internalMethod()" /></div>
</template><script setup lang="ts">
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';const childRef = ref<InstanceType<typeof ChildComponent> | null>(null);const emitEvent = () => {// 通过事件触发子组件内部逻辑childRef.value?.$emit('trigger-child');
};
</script>

关键点说明:

  1. 使用 defineExpose
    子组件需显式暴露方法,父组件才能通过 ref 直接调用。

  2. TypeScript 类型安全

    ts

    复制

    下载

    const childRef = ref<InstanceType<typeof ChildComponent> | null>(null);

    确保调用子组件方法时有完整的类型提示。

  3. 两种方式选择

    • Ref 直调:适合直接操作子组件

    • 自定义事件:适合解耦场景(子组件自行响应事件)

  4. 注意事项

    • 避免过度使用 ref 破坏组件封装性

    • 事件驱动方式更符合 Vue 的数据流原则


完整工作流程:

  1. 子组件用 defineExpose 暴露方法

  2. 父组件声明 ref 并关联子组件

  3. 父组件按钮点击时通过 childRef.value.methodName() 调用

  4. 子组件方法执行并更新状态

根据你的项目结构选择合适的方式即可实现父子组件通信。

http://www.yayakq.cn/news/25485/

相关文章:

  • 网站后台如何更改广州外贸营销型网站建设
  • 网站站点建设分为佛山企业网站排名
  • 网站开发公司经营范围服务器搭建网站环境
  • 购物网站建设收费邢台做网站的公司有那个
  • 两学一做网站飘窗企业网站建设参考文献
  • 沈阳网站制作定制策划捕鱼网站建设
  • 云南旅游网站开发公司产品推广活动方案
  • 《php与mysql网站开发全接触》光盘源码.rarwordpress如何开启cdn加速服务
  • 涉密项目单位网站建设流程网站建设验收书
  • 代做设计的网站小红书推广计划
  • 通辽市工程建设网站新专业建设的重点任务
  • 网站网页设计原则中小型企业网站建设与管理考试
  • 购物网站排名2018wordpress授权系统
  • 网站认证金额怎么做分录北滘禅城网站建设
  • 个人网站心得凡科沙发官网
  • 做网站设计师好吗江门手机模板建站
  • 做网站的基本条件娄底市住房和城乡建设局官方网站
  • 官方网站建设意义长沙网站设计认准智优营家
  • 网站搭建服务小程序推广话术案例
  • 电子商务网站设计公司吴川网站建设公司
  • 如何与网站建立私密关系常州哪家网站建设公司专业
  • 蓝色 网站清丰网站建设公司
  • 网站营销的特征有wordpress 分布式
  • 天津市建设工程合同备案网站wordpress 学校模板
  • 阳江企业网站排名优化网络营销就是网上消售吗
  • 深圳公司网站设计企业亚马逊做网站
  • 网站免费一站二站四站wordpress5.0启多站点
  • 梅州做网站公司网站设计的主要内容
  • 专门做游戏交易的网站有哪些吉林省网络推广公司
  • 建一个网站是不是要开公司网站后台怎么做友情链接