vue子组件调用父组件函数_vue子组件修改父组件值

vue子组件调用父组件函数_vue子组件修改父组件值vue子组件调用父组件的3种方法

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1. 直接在子组件中通过this.$parent.event来调用父组件的方法

父组件:

<template>
  <div>
    <child></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default { 
   
    components: { 
   
      child
    },
    methods: { 
   
      fatherMethod() { 
   
        console.log('测试');
      }
    }
  };
</script>

子组件:

<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default { 
   
    methods: { 
   
      childMethod() { 
   
        this.$parent.fatherMethod();
      }
    }
  };

2. 在子组件里用$emit向父组件触发一个事件,父组件监听这个事件

父组件:

<template>
  <div>
    <child @fMethod="fatherMethod"></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default { 
   
    components: { 
   
      child
    },
    methods: { 
   
      fatherMethod(data) { 
   
        console.log(data);
      }
    }
  };
</script>

子组件:

<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default { 
   
    methods: { 
   
      childMethod() { 
   
        this.$emit('fMethod',data);
      }
    }
  };
</script>

3. 父组件把方法传入子组件中,在子组件里直接调用

父组件:

<template>
  <div>
    <child :fatherMethod="fatherMethod"></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default { 
   
    components: { 
   
      child
    },
    methods: { 
   
      fatherMethod() { 
   
        console.log('测试');
      }
    }
  };
</script>

子组件:

<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default { 
   
    props: { 
   
      fatherMethod: { 
   
        type: Function,
        default: null
      }
    },
    methods: { 
   
      childMethod() { 
   
        if (this.fatherMethod) { 
   
          this.fatherMethod();
        }
      }
    }
  };
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186888.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于51单片机智能小车的设计与实现转弯避障_基于单片机的智能小车设计

    基于51单片机智能小车的设计与实现转弯避障_基于单片机的智能小车设计0引言学习智能小车系统,有助于提高搭建系统的能力和对自动控制技术的理解。智能小车是一个较为完整的智能化系统,而智能化的研究已成为我国追赶世界科技水平的重要任务。智能小车有它特有的特点:成本低,涉及的知识面广,易于拓展[1]。整个智能小车系统作为一个完整的系统,从它的原理图的实现到实物的完成的过程,不仅需要深厚的电子方面的知识,还有对电路实现的良好掌握,对于培养学生的实践能力都有重要的意义。智能小车…

    2022年10月17日
    3
  • 企业级PHP发卡网源码,金发卡企业级发卡平台源码

    企业级PHP发卡网源码,金发卡企业级发卡平台源码【实例简介】PHP环境:php5.XMySQL环境:mysql5.6服务器需开启伪静态后台默认账号密码:账号:admin密码:admin123配置说明:数据恢复文件目录\a8tgconfig\180626145246.sql或者通过客户端直接还原Back.psc数据库配置文件:\a8tgconfig\config.php修改相关数据库IP,账号,密码支付接口相关…

    2022年7月14日
    17
  • Qt学习笔记#4:QTimer和QTime

    QTimerClassQTimer是一个计时器类它的使用分三步,创建对象,连接signal和slot函数,start()QTimer*timer=newQTimer(this);connect(timer,SIGNAL(timeout()),this,SLOT(update()));timer->start(1000);其中,SIGNAL(timeou

    2022年4月16日
    50
  • 使用flex垂直居中(超简单)

    使用flex垂直居中(超简单)flex+margin垂直居中-加粗样式在父级中使用flex,在子级中使用margin:autobody中的代码<body> <divclass=”a”> <divclass=”b”></div> </div></body>css样式.a{ width:500px; height:500px; border:1pxsolidblue; display:flex;}.b{

    2022年6月13日
    39
  • 具体数学第二版第一章习题(1)

    具体数学第二版第一章习题(1)

    2021年5月28日
    75
  • html完整网页实例简单_html简单网页代码解读

    html完整网页实例简单_html简单网页代码解读要完成一个网页的制作其实本质上是很简单的,本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,同样的也有js的动画效果,这个实例比较全面,有助于同学的学习。本实例仅供参考,其他行为自负。本实例分为四篇来观看。一共有一个HTML文件,三个css样式表,三个js,有16张图片。其中img里面的图片可以自行下载,或用本实例里面的图片。测试项目是建议大家用谷歌…

    2022年9月23日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号