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>
相关推荐
陈随易25 分钟前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·后端·程序员
SoaringHeart1 小时前
Flutter进阶:基于 EasyRefresh 的下拉刷新封装 n_easy_refresh_mixin.dart
前端·flutter
IT_陈寒3 小时前
Vite的热更新突然不香了,排查三小时差点砸键盘
前端·人工智能·后端
子兮曰4 小时前
Agency-Agents 深度解析:400+ AI 专家的"梦之队"如何重塑开发工作流
前端·后端·vibecoding
山河木马4 小时前
渲染管线-计算得到gl_Position(顶点着色器)之后续GPU流程
javascript·webgl·图形学
竹林8184 小时前
用 The Graph 查询链上数据实战:从手搓 RPC 到 Subgraph,我的 NFT 项目数据加载快了 10 倍
前端·javascript
妙码生花5 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十九):点选验证码代码逐行目检
前端·后端·go
Awu12275 小时前
⚡从零开发 Agent CLI(五)实现一个可治理、可扩展的工具系统
前端·人工智能·claude
咪库咪库咪6 小时前
Vue3-生命周期
前端
莪_幻尘6 小时前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南
前端·ai编程