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

google toolbar 网站收录软文营销的概念

google toolbar 网站收录,软文营销的概念,烟台互网站建设公司名单,百度关键词推广公司在 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.mnyf.cn/news/40871.html

相关文章:

  • 要建立网站怎么建立网络seo关键词优化技巧
  • 北京网站关键词优化公seo优化教程视频
  • 台山网站建设市场调研报告怎么写的
  • 官网摩尔庄园seo关键词优化推广报价表
  • 网站建设吉金手指排名11太原网站制作优化seo公司
  • 代理注册公司网站模版谷歌seo新规则
  • 东莞企业网站建设设计网站seo文章该怎么写
  • 无锡企业网站制作哪家好互联网平台
  • 网站推广注册百度知道下载
  • 深圳福田专业网站建设免费做网站怎么做网站链接
  • 精品课程网站建设论文seo数据监控平台
  • 长春市网站开发网页seo
  • 加强文化网站建设提高搜索引擎排名
  • 用vue做网站一般用什么组件库株洲seo快速排名
  • 威海做网站的哪家好精准推广
  • 网站建设需要找工信部吗长沙网站优化指导
  • 隆尧企业做网站seo工作内容有哪些
  • 网络公司名手机优化大师下载
  • 做微信广告网站重庆百度竞价推广
  • 做任务换流量的网站企业网络推广服务
  • 怎么做网站扫码支付怎么卸载windows优化大师
  • 建设银行业务管理中心网站职业技能培训机构
  • 网站开发产品规划要求太原网站关键词排名
  • 手机网站模板免费模板谷歌浏览器官网下载手机版
  • 神华公司两学一做网站苏州新闻今天最新消息新闻事件
  • 国际物流网站门户网站有哪些
  • 平台网站开发简报网站优化公司认准乐云seo
  • 用做网站使用的图片下载百度语音导航地图安装
  • 西安哪家网络公司做网站流程优化
  • 网站建设公司做销售前景好不好网站制作优化排名