您现在的位置是:首页 > 技术教程 正文

Vue3父子组件相互调用方法

admin 阅读: 2024-03-29
后台-插件-广告管理-内容页头部广告(手机)

下面演示均为使用 setup 语法糖的情况!

参考网址:https://cn.vuejs.org/api/sfc-script-setup.html#defineexpose

一、父组件调用子组件方法

子组件需要使用defineExpose对外暴露方法,父组件才可以调用!

1.子组件

  1. <script lang="ts" setup>
  2. // 第一步:定义子组件的方法
  3. const hello = (str: string) => {
  4. console.log('子组件的hello方法执行了--' + str)
  5. }
  6. // 第二部:暴露方法
  7. defineExpose({
  8. hello
  9. })
  10. script>

2.父组件

  1. <script lang="ts" setup>
  2. import { ref } from 'vue';
  3. import Child from '../../components/child.vue';
  4. // 二:定义与 ref 同名变量
  5. const childRef = ref ()
  6. // 三、函数
  7. const getChild = () => {
  8. // 调用子组件的方法或者变量,通过value
  9. childRef.value.hello("hello world!");
  10. }
  11. script>

3.测试结果

二、子组件调用父组件方法

1.父组件

  1. <script lang="ts" setup>
  2. import Child from '../../components/child.vue';
  3. const handle = () => {
  4. console.log('子组件调用了父组件的方法')
  5. }
  6. script>

2.子组件

  1. <script lang="ts" setup>
  2. const emit = defineEmits(["sayHello"])
  3. const say = () => {
  4. emit('sayHello')
  5. }
  6. script>

3.测试结果

今天的分享就到这里啦~~

如有错误,欢迎随时雅正。

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索