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>
相关推荐
子兮曰4 小时前
async/await高级模式:async迭代器、错误边界与并发控制
前端·javascript·github
恋猫de小郭4 小时前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
GIS之路6 小时前
ArcGIS Pro 中的 Notebooks 入门
前端
IT_陈寒7 小时前
React状态管理终极对决:Redux vs Context API谁更胜一筹?
前端·人工智能·后端
lemon_yyds8 小时前
《vue 2 升级vue3 父组件 子组件 传值: value 和 v-model
vue.js
Kagol8 小时前
TinyVue 支持 Skills 啦!现在你可以让 AI 使用 TinyVue 组件搭建项目
前端·agent·ai编程
柳杉8 小时前
从零打造 AI 全球趋势监测大屏
前端·javascript·aigc
simple_lau8 小时前
Cursor配置MasterGo MCP:一键读取设计稿生成高还原度前端代码
前端·javascript·vue.js
睡不着先生8 小时前
如何设计一个真正可扩展的表单生成器?
前端·javascript·vue.js
天蓝色的鱼鱼9 小时前
模块化与组件化:90%的前端开发者都没搞懂的本质区别
前端·架构·代码规范