vue 子父调用

在 Vue 中,父页面调用子页面方法的 最简单、最常用方式 是通过 ref 引用(Vue 2 和 Vue 3 通用,语法略有差异)。以下是具体实例,包含核心代码和详细说明:

核心原理

  1. 父组件给子组件添加 ref 属性(相当于给子组件起一个 "标识名");
  2. 父组件通过 this.$refs.标识名(Vue 2)或 ref变量.value(Vue 3 组合式 API)获取子组件实例;
  3. 直接调用子组件实例上的方法即可。

一、Vue 2 实例(选项式 API)

1. 子组件(Child.vue)

定义需要被父组件调用的方法(如 childMethod):

vue

复制代码
<template>
  <div>我是子组件</div>
</template>

<script>
export default {
  methods: {
    // 子组件的方法(可接收父组件传递的参数)
    childMethod(params) {
      console.log("子组件方法被调用!", "父组件传参:", params);
      // 子组件的业务逻辑...
      return "子组件返回值";
    }
  }
};
</script>

2. 父组件(Parent.vue)

通过 ref 引用子组件,然后调用其方法:

vue

复制代码
<template>
  <div>
    <h3>我是父组件</h3>
    <!-- 给子组件添加 ref 属性,标识名为 "childRef" -->
    <Child ref="childRef" />
    <!-- 触发调用的按钮 -->
    <button @click="callChildMethod">调用子组件方法</button>
  </div>
</template>

<script>
// 引入子组件
import Child from "./Child.vue";

export default {
  components: { Child }, // 注册子组件
  methods: {
    callChildMethod() {
      // 1. 通过 $refs 获取子组件实例
      const childInstance = this.$refs.childRef;
      
      // 2. 调用子组件的方法(可传参、可接收返回值)
      const result = childInstance.childMethod({ name: "父组件", age: 20 });
      
      console.log("子组件返回值:", result);
    }
  }
};
</script>
相关推荐
张较瘦_5 分钟前
JavaScript | 数组方法实战教程:push()、forEach()、filter()、sort()
开发语言·javascript·ecmascript
POLITE38 分钟前
Leetcode 41.缺失的第一个正数 JavaScript (Day 7)
javascript·算法·leetcode
bjzhang7527 分钟前
使用 HTML + JavaScript 实现积分抽奖系统
前端·javascript·html
越努力越幸运50843 分钟前
vue学习二:
javascript·vue.js·学习
POLITE31 小时前
Leetcode 42.接雨水 JavaScript (Day 3)
javascript·算法·leetcode
京东零售技术1 小时前
2025京东零售技术年度精选 | 技术干货篇(内含福利)
前端·javascript·后端
悦E佳1 小时前
资源&问题链接
前端
布列瑟农的星空1 小时前
2025年度总结——认真生活,快乐工作
前端·后端
点亮一颗LED(从入门到放弃)1 小时前
设备模型(10)
linux·服务器·前端
xingzhemengyou11 小时前
Python 有哪些定时器
前端·python