Vue子组件调用父组件事件的三种方法

这篇具有很好参考价值的文章主要介绍了Vue子组件调用父组件事件的三种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 在子组件中通过this.$parent.event来调用父组件的方法,data参数可选

<template>
  <div>
    <h1>我是父组件</h1>
    <child />
  </div>
</template>
<script>
  import child from '@/components/child';
  export default {
    components: {
      child
    },
    methods: {
      fatherMethod(data) {
        console.log('我是父组件方法');
      }
    }
  };
</script>
<template>
  <div>
    <h1>我是子组件</h1>
    <button @click="childMethod(data)">点击</button>
  </div>
</template>
<script>
  export default {
    methods: {
      childMethod() {
        this.$parent.fatherMethod(data);
        console.log('调用父组件方法')
      }
    }
  };
</script>

2.父组件使用v-bind绑定一个变量(v-bind:变量名="值"),子组件用props接收(与created同级)

<template>
  <div>
    这是父组件
    <child :parentHandler="parentHandler" />
  </div>
</template>
<script>
import child from "@/components/child";
export default {
  components: { child },
  data() {
    return {};
  },
  methods: {
    parentHandler() {
      console.log("这是父组件的方法");
    },
  },
};
</script>
<template>
  <div>
    这是子组件
    <button @click="handler">这是子组件的按钮</button>
  </div>
</template>
<script>
export default {
  props: {
    parentHandler: {
      type: Function,
      default: () => {
        return Function;
      },
    },
    //parentHandler: {
    //   type: Object,
    //   default: () => {
    //     return {}
    //   },
    //},
    // parentHandler: {
    //   type: Boolean,
    //   default: true,
    // },
    // parentHandler: {
    //   type: Array,
    //   default: () => {
    //     return []
    //   },
    // },
    // parentHandler: {
    //   type: String,
    //   default: '',
    // },
  },
  methods: {
    handler() {
      this.parentHandler();
    },
  },
};
</script>

3.使用$refs传值

<template>
  <div>
    <h3>这是父组件</h3>
    <button @click="setChildInfo">向子组件传值</button>
    <h3>这是父组件中引用的子组件</h3>
    <child ref="child"></child>
  </div>
</template>

<script>
//子组件地址(仅供参考),具体以实际项目目录地址为准
import child from "./Child.vue";
export default {
  components: {
    child: child
  },
  data() {
    return {};
  },
  methods: {
    // 向子组件传值
    setChildInfo() {
      this.$refs.child.cInfo = "c2";
      //this.$refs.child.open("c2");
    }
  }
};
</script>
<template>
  <div>
    <p>收到父组件数据:{{ cInfo }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      cInfo: "c1"
    };
  },
  methods: {
    //open(data) {
    //  console.log(data);
    //},
  },
};
</script>

文章来源地址https://www.toymoban.com/news/detail-612795.html

到了这里,关于Vue子组件调用父组件事件的三种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Vue3】Vue3中reactive变量重新赋值无法响应的三种处理方法(已解决)

    1、html 2、定义reactive变量 3、重新赋值   1、html 2、定义ref变量 3、赋值 第三种方案:push(不推荐)

    2024年02月15日
    浏览(35)
  • vue3组合式写法在方法中出发点击事件

    问: 用vue3组合式写法,如何在一个方法中调用a标签的点击事件 回答: 在Vue 3的组合式API中,可以通过ref来获取DOM元素的引用,然后使用$el属性访问DOM元素并触发其点击事件。下面是示例代码: 在上述代码中,首先通过ref创建了一个名为linkRef的引用变量,并将其初始化为

    2024年02月15日
    浏览(34)
  • vue3 微信扫码登录及获取个人信息实现的三种方法

    一、流程: 微信提供的扫码方式有两种,分别是: 根据文档我们可以知道关于扫码授权的模式整体流程为: 二、前置条件: 微信开发官网 申请: appid: ‘’, // 后端提供 redirect_uri: ‘’, // 后端提供 AppSecret // 后端提供 三、具体登录实现 实现方式一: 使用vue插件: 使用: 结果

    2023年04月13日
    浏览(35)
  • 前端vue中父子组件之间的传值(修改值)和事件的相互调用

    目录 父组件向子组件传值 子组件修改父组件中的值: 方法1 方法2 子组件调用父组件里的函数 方法1 方法2 父组件调用子组件的函数 : 子组件中的 data 属性是用来存储子组件自身的数据,而不是用来接收父组件传递的数据的。父组件向子组件传递数据的常用方式是通过 pro

    2024年02月07日
    浏览(33)
  • vue 防止快速点击导致重复调用接口的解决方法

    方法:通过前台画面将按钮变成不可编辑的状态来实现 步骤如下: 在按钮中引用(添加指令 v-prevent-re-click ):

    2024年02月15日
    浏览(29)
  • JS绑定事件的三种方法(简单易懂)

    相信大家都了解过事件,但如何给元素绑定事件,如何使用呢? 让我为大家介绍三种绑定事件的方法吧! 以下都是用点击事件(click)来做示范 代码总结: 本人文笔有限,如有不对的地方,可以向我提出,感谢大家!

    2024年02月03日
    浏览(48)
  • vue.js兄弟组件方法调用b组件调用a组件方法

    vue.js 中兄弟组件方法调用 场景:父组件中同时引入两个子组件(A和B),此时B组件点击按钮需要调用A组件里面的方法 方案1:vue的事件总线 方案2:自定义事件($emit) 最终方案:方案2 具体操作 B组件上添加一个自定义的事件,这个是B组件传递给父组件的 @getList=getlist A组件

    2024年02月13日
    浏览(33)
  • VUE中子组件调用父组件的方法,父组件调用子组件的方法,父子组件互相传值和方法调用

    场景:自定义一个通用组件,需要调用父组件的方法进行计算 一、使用this.$emit()向父组件触发一个事件,父组件监听这个事件即可。 父组件: 子组件: 二、直接在子组件中通过“this.$parent.event”来调用父组件的方法。 父组件: 子组件: 三、父组件把方法传入子组件中,在子

    2024年02月04日
    浏览(26)
  • Vue子组件关闭后调用刷新父组件方法

    实现效果   调用方法 当在子组件里更改了某些信息且关闭子组件后,需要父组件更新修改后的内容,操作如下: 1、$emit触发 2、使用$parent触发父组件 更新数据是由某个方法触发,如getList() 常见问题 在开发 Vue 项目中,遇到了一个这样的问题: 其中UI框架使用的是iview UI , 在

    2024年02月11日
    浏览(25)
  • vue3父组件调用子组件的方法

    东风vue3 父组件调用子组件的方法是通过 expose 和 ref 来实现的,我们可以通过 expose 来控制父组件可以访问子组件那些的方法和对象,我们将通过 setup api (组合式 api)和 option api (选项式 api)来演示父组件如何调用子组件的方法。 1,组合式API 父组件通过ref定义子组件实例,通过

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包