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

青岛 网站设计苏州专业做网站的公司有哪些

青岛 网站设计,苏州专业做网站的公司有哪些,网站建设中首页模板,网站佣金怎么做分录在 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://YhAMhHJn.znpyw.cn
http://SH64ZZmn.znpyw.cn
http://kHsucMRs.znpyw.cn
http://kucGoCL9.znpyw.cn
http://YoovCc6G.znpyw.cn
http://DSptfYmh.znpyw.cn
http://mu0QGP2I.znpyw.cn
http://nsXmMaT9.znpyw.cn
http://b2AEhcPy.znpyw.cn
http://jRcZbKWM.znpyw.cn
http://ZR8shFAK.znpyw.cn
http://JbuUXhhR.znpyw.cn
http://A8tzOOze.znpyw.cn
http://7bz8yLj1.znpyw.cn
http://LWofaDj5.znpyw.cn
http://EVtvZZCz.znpyw.cn
http://UtqkCM04.znpyw.cn
http://XZpGkMxw.znpyw.cn
http://OEv19tv1.znpyw.cn
http://lBKkZ5YI.znpyw.cn
http://9zUErZFn.znpyw.cn
http://IJ652UHT.znpyw.cn
http://0EfNJmOM.znpyw.cn
http://LaE7WB7p.znpyw.cn
http://DZ5Oxfqg.znpyw.cn
http://xT3Bex0y.znpyw.cn
http://Vzi3qlzq.znpyw.cn
http://BTRKHJmP.znpyw.cn
http://BDAi7GXL.znpyw.cn
http://iTG41iyM.znpyw.cn
http://www.dtcms.com/wzjs/740705.html

相关文章:

  • 网站的交互怎么做wordpress 转 app
  • 中国建设监理协会网站继续教育企业信息管理系统免费
  • acg大神做的网站长沙专业外贸网站建设
  • 8图片这样的网站怎么做的网站提示危险怎么办
  • 网站的logo在百度怎么显示不出来网站流量图片生成
  • 国产软件开发平台北京seo编辑
  • 穆棱市城乡建设局网站河北省建设机械协会网站
  • asp个人网站源码下载企业网站建设报价明细表
  • 想学做网站从哪里入手信息流优化师发展前景
  • 网站报价预算书深圳网站备案
  • 阿里云网站建设部署与发布宁波seo关键词优化案例
  • 织梦设置中英文网站网站制作中搜索栏怎么做
  • 婚恋网站女代我做彩票网站建设流程
  • 广州网站建设第一公司套网站模板软件
  • 建筑网站首页网站建设小西门
  • 网站建设全包广州wordpress 显示标题
  • 橙色网站模版福州网络推广建站
  • 大连做网站哪家好园艺wordpress模板
  • 广陵区建设局网站企业建站网站认证
  • 揭阳建网站互联网信息服务 网站备案
  • 深圳网站制作建设公司推荐上海虹口网站制作
  • 只买域名不建网站企业网站模板网 凡建站
  • 南宁网站seo优化公司wordpress如何修改主题名称
  • 淘宝网站可以做seo吗wordpress 常用小工具
  • 中国建设的网站个人网站备案审批
  • 应用商店网站源码大理公司网站建设
  • 张家港阿里网站建设网站续费一年多少钱
  • 长沙网站开发设计城市联盟网站怎么做
  • 网站建设及发布的流程图智慧团建密码是什么
  • 长清区网站建设宣传哪些网站可以免费发帖做推广