返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue中实现子组件接收父组件方法并获取返回值
  • 658
分享到

vue中实现子组件接收父组件方法并获取返回值

vue子组件子组件接收父组件vue获取返回值 2022-11-13 14:11:23 658人浏览 独家记忆
摘要

目录子组件接收父组件方法并获取返回值父组件 GetCallback.Vue子组件 CallbackChild1.vue子组件接收父组件的另一种方法子组件接收父组件方法并获取返回值 项

子组件接收父组件方法并获取返回值

项目中有时候会遇到父子组件传值的问题,比如子组件需要接收父组件方法并获取该方法返回值的时候。

使用this.$emit('方法名', '参数1', '参数2')的方式,获取到不是父组件方法的return值。但是我们可以将参数改为回调函数的形式,父组件里执行该回调函数,返回值后给子组件,子组件再接收返回值。

示例:

父组件 GetCallback.vue

<template>
  <div>
    我是父组件
    <CallbackChild1 @getData="getData" />
  </div>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
import CallbackChild1 from '@/components/CallbackChild1.vue';
@Component({
  components: {
    CallbackChild1,
  },
})
export default class GetCallback extends Vue {
  getData(callback: FunctionConstructor): void {
    const name = '我是父组件的值';
    callback(name); // 父组件执行作为参数的函数
  }
}
</script>

子组件 CallbackChild1.vue

<template>
  <div>
    <p>我是子组件</p>
    <button @click="getDataFromParent">子组件获取父组件返回值</button>
    <span>返回值:{{ value }}</span>
  </div>
</template>
<script lang="ts">
import { Vue, Component } from 'vue-property-decorator';
@Component
export default class CallbackChild1 extends Vue {
  value = '';
  getDataFromParent(): string {
      // 子组件接收函数的值
    this.$emit('getData', (val: string) => { this.value = val });
    return this.value;
  }
}
</script>

子组件接收父组件的另一种方法

子组件获取父组件传递的数据通常是通过props属性接收父组件的传递过来的数据,

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta Http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<my-child :msg='msg'></my-child>
</div>
</body>
</html>

<script src="./node_modules//vue//dist//vue.min.js"></script>
<script>
let vm = new Vue({
el: '#app',
data: {
msg: 'helloWord'
},
components: {
'myChild': {
props: ['msg'],
mounted() {
console.log(this.$attrs)
},
components: {
'myChildren': {
props: ['msg'],
template:
`<span>{{msg}}</span>
`
}
},
template: `<div>{{msg}}
<my-children :msg='msg'></children>
</div>`
}
}
})
</script>

也可以通过子组件的$attrs接收的父组件的数据,但是这时候传递的数据子组件中不能有props的属性,不然子组件的$attrs获得的是空对象,

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<my-child :msg='msg'></my-child>
</div>
</body>
</html>

<script src="./node_modules//vue//dist//vue.min.js"></script>
<script>
let vm = new Vue({
el: '#app',
data: {
msg: 'helloword'
},
components: {
'myChild': {
// props:['msg'],
mounted() {
console.log(this.$attrs)
},
components: {
'myChildren': {
//props:['msg'],
template:
`<span>{{this.$attrs.msg}}</span>
`
}
},
template: `<div>{{this.$attrs.msg}}
<my-children :msg='$attrs.msg'></children>
</div>`
}
}
})
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue中实现子组件接收父组件方法并获取返回值

本文链接: https://lsjlt.com/news/171720.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue中实现子组件接收父组件方法并获取返回值
    目录子组件接收父组件方法并获取返回值父组件 GetCallback.vue子组件 CallbackChild1.vue子组件接收父组件的另一种方法子组件接收父组件方法并获取返回值 项...
    99+
    2022-11-13
    vue子组件 子组件接收父组件 vue获取返回值
  • vue实现父组件获取子组件的方法或属性值详解
    目录父组件获取子组件方法或属性值这里主要使用了vue的$ref父组件获取子组件中的变量案例一:点击父组件的按钮,操作子组件显示案列二:获取子组件data中的变量父组件获取子组件方法或...
    99+
    2024-04-02
  • Vue子组件接收父组件传值的方式有哪些
    这篇文章给大家分享的是有关Vue子组件接收父组件传值的方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。父组件代码&darr;<template>   &n...
    99+
    2023-06-29
  • 分享Vue子组件接收父组件传值的3种方式
    目录1.简单声明接收2.接收数据的同时进行 类型限制3.接收数据的同时对 数据类型、必要性、默认值 进行限制父组件代码↓ <template>     <...
    99+
    2024-04-02
  • vue中怎么实现子组件向父组件传值
    这篇文章给大家介绍vue中怎么实现子组件向父组件传值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。父组件这么写<component-a v-on:child-say=&...
    99+
    2024-04-02
  • Vue中怎么实现父组件向子组件传值
    这期内容当中小编将会给大家带来有关Vue中怎么实现父组件向子组件传值,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1:在src/components/child/文件夹下...
    99+
    2024-04-02
  • Vue子组件props从父组件接收数据并存入data
    目录1.不允许直接修改2.存在异步的情况解决思路经过测试父组件中传递过来的数据有以下特点: 1.不允许直接修改 如果直接使用 this.xxx = action 操作的话 控制台会报...
    99+
    2024-04-02
  • Vue子组件向父组件传值示范方法
    目录一、要点概述二、分步讲解三、总代码和运行结果一、要点概述 子组件:通过某种事件(这里是@click点击事件,也可以是其他事件)发送数据,this.$emit('事件名&#...
    99+
    2023-03-20
    Vue子向父传值 Vue子组件向父组件传值
  • Vue中如何实现父子组件传值
    Vue中如何实现父子组件传值,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(一)传递数值1.子组件:Header.vue<templat...
    99+
    2024-04-02
  • Vue中父子组件如何实现传值
    目录前言一、将子组件引入父组件二、父组件如何传值给子组件三、子组件如何接收父组件传过来的值并使用(props)四、子组件如何传值给父组件($emit)五、父组件使用子组件传过来的值总...
    99+
    2023-01-28
    Vue父子组件 Vue组件传值 Vue父子组件传值
  • vue父组件中怎么利用v-model指令接收子组件的值
    这篇文章给大家介绍vue父组件中怎么利用v-model指令接收子组件的值,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体代码如下所述:<template> <div...
    99+
    2024-04-02
  • vue父组件异步传递props值,子组件接收不到解决方案
    目录父组件异步请求数据之后传值给子组件,子组件接收不到这里有两种解决思路父组件传递props异步数据到子组件遇到的问题状况一案例二父组件异步请求数据之后传值给子组件,子组件接收不到 ...
    99+
    2022-11-13
    vue父组件异步 vue传递props值 子组件接收不到
  • vue如何实现父子组件传值
    小编给大家分享一下vue如何实现父子组件传值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!父子组件传值<!DOCTYPE&...
    99+
    2024-04-02
  • vue中怎么实现父组件向子组件动态传值
    这篇文章将为大家详细讲解有关vue中怎么实现父组件向子组件动态传值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。方法有两种,方法一:props传值,这里注意...
    99+
    2024-04-02
  • React父子组件传值(组件通信)的实现方法
    目录1、父组件传值子组件2、子组件传值父组件3、兄弟组件传值1、父组件传值子组件 在引用子组件的时候传递,相当于一个属性,例如:在子组件内通过porps.param获取到这个para...
    99+
    2024-04-02
  • Vue实现父子组件传值的方法是什么
    这篇文章主要介绍了Vue实现父子组件传值的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue实现父子组件传值的方法是什么文章都会有所收获,下面我们一起来看看吧。父传子通过 props。props 就...
    99+
    2023-07-05
  • Vue子组件向父组件传值的方法是什么
    这篇文章主要介绍了Vue子组件向父组件传值的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue子组件向父组件传值的方法是什么文章都会有所收获,下面我们一起来看看吧。一、要点概述子组件:通过某种事件(...
    99+
    2023-07-05
  • vue中怎么实现父子组件间传值
    今天就跟大家聊聊有关vue中怎么实现父子组件间传值,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。先定义一个子组件,在组件中注册props<te...
    99+
    2024-04-02
  • Vue中怎么实现非父子组件传值
    Vue中怎么实现非父子组件传值,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前置知识: 1. $emit(event...
    99+
    2024-04-02
  • vue如何实现子组件向父组件进行传值
    这篇文章主要为大家展示了“vue如何实现子组件向父组件进行传值”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现子组件向父组件进行传值”这篇文章吧。子组件向父组件进行传值:父组件内设置...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作