Vue父组件和子组件之间数据传递和方法调用

 更新时间:2022年12月14日 16:24:35   投稿:yin  
vue组件在通信中,无论是子组件向父组件传值还是父组件向子组件传值,他们都有一个共同点就是有中间介质,子向父的介质是自定义事件,父向子的介质是props中的属性。

vue组件在通信中,无论是子组件向父组件传值还是父组件向子组件传值,他们都有一个共同点就是有中间介质,子向父的介质是自定义事件,父向子的介质是props中的属性。

父组件向子组件传值(子组件主动获取父组件的数据和方法)

父组件import引用子组件
使用子组件时在子组件上添加一个v-bind属性,并绑定上数据
在子组件中创建 props ,在props 中创建相同的属性名,用来接收数据
把接收到的数据在子组件中使用

子组件向父组件传值(父组件主动获取子组件的数据和方法)

子组件中需要发出该自定义事件,可以是按钮的点击事件,也可以是其他方式
将需要传的值放在 $emit 第二个参数的位置,这个参数会被传给父组件中的响应方法
需要在父组件中使用子组件并在子组件标签上绑定对事件的监听

演示代码:

//父组件
<template>
  <div id="header">  
    <headerchild ref="headerChild"></headerchild>
    <button @click="getChild()">父组件获取子组件的数据和方法</button>
  </div>
</template>
<script>
import HeaderChild from './HeaderChild'
export default {
  data () {
      return {
          title:'我是父组件的数据'
      }
  },
  methods: {
     getChild (){
         console.log(this.$refs.headerChild.name)
     },
     run (){
         console.log("我是父组件里面的方法")
     }
  },
  components: {
      'headerchild': HeaderChild
  }
}
</script>
<style lang="sass" scoped>

</style>
//子组件
<template>
  <div id="headerchild">
      <button @click="getParent()">获取父组件的数据和方法</button>
  </div>
</template>
<script>
export default {
  data () {
      return {
          name:'我是子组件里面的数据'
      }
  },
  methods:{
      getParent(){
          console.log(this.$parent.title) /*获取整个父组件*/
          this.$parent.run()/*获取父组件的方法*/
      }
  },
  props:['title','run','home'] /*通过props接收父组件传递过来的数据 */
}
</script>

到此这篇关于Vue父组件和子组件之间数据传递和方法调用的文章就介绍到这了,更多相关Vue父组件和子组件互相传值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目

    如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目

    这篇文章主要介绍了如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 详解hooks在vue3中的使用方法及示例

    详解hooks在vue3中的使用方法及示例

    hooks可以通过特定的函数将逻辑 "钩入" 组件中,使得开发者能够更灵活地构建和管理组件的功能从而提高代码的可读性以及可维护性等,本篇文章将介绍hooks如何在vue3中使用以及它的一些实际使用例子,让大家能更好的了解和使用hooks,需要的朋友可以参考下
    2023-09-09
  • Pinia 的 Setup Stores 语法使用实例详解

    Pinia 的 Setup Stores 语法使用实例详解

    这篇文章主要为大家介绍了Pinia 的 Setup Stores 语法使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Vue项目使用CDN优化首屏加载问题

    Vue项目使用CDN优化首屏加载问题

    这篇文章主要介绍了Vue项目使用CDN优化首屏加载问题,本文以vue、vuex、vue-touter为例,给大家介绍处理流程,需要的朋友可以参考下
    2018-04-04
  • Vue实现带参数的自定义指令示例

    Vue实现带参数的自定义指令示例

    这篇文章主要为大家介绍了Vue实现带参数的自定义指令示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Vue3获取DOM节点的3种方式实例

    Vue3获取DOM节点的3种方式实例

    Vue本来无需操作DOM来更新界面,而且Vue也不推荐我们直接操作DOM,但是我们非要拿到DOM操作DOM怎么办,下面这篇文章主要给大家介绍了关于Vue3获取DOM节点的3种方式,需要的朋友可以参考下
    2023-02-02
  • vue3中使用reactive定义的变量响应式丢失问题解决方案

    vue3中使用reactive定义的变量响应式丢失问题解决方案

    这篇文章主要介绍了vue3中使用reactive定义的变量响应式丢失问题的具体例子和解决方案,文章通过代码示例给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-06-06
  • 详解如何在vue项目中引入elementUI组件

    详解如何在vue项目中引入elementUI组件

    这篇文章主要介绍了详解如何在vue项目中引入elementUI组件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Vue3利用自定义ref实现防抖功能

    Vue3利用自定义ref实现防抖功能

    在Vue3中,ref提供了访问组件内DOM元素和子组件实例的方法,防抖是一种限制函数调用频率的方法,即在一定时间内多次触发同一个函数,只执行最后一次触发的函数,本文将给大家介绍了Vue3如何利用自定义ref实现防抖,需要的朋友可以参考下
    2024-05-05
  • 基于vue.js 2.x的虚拟滚动条的示例代码

    基于vue.js 2.x的虚拟滚动条的示例代码

    本篇文章主要介绍了基于vue.js 2.x的虚拟滚动条的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01

最新评论