Vue组件通信——父子组件通信的四种方法

本文详细介绍了Vue中父子组件通信的四种方法:1) 使用props属性绑定实现父组件向子组件传递数据;2) 通过监听子组件事件,使子组件向父组件传递数据并触发父组件方法;3) 利用$refs来访问子组件的数据和方法,需注意其非响应式特性;4) 子组件通过$parent可以直接访问父组件的数据和方法。文章还涉及了props的更多写法,包括字符串数组形式、指定类型和验证要求,以及.prop双向绑定和.sync修饰符的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入组件

  1. 全局引入

    在main.js文件中引入并注册

    import ChildrenDemo from '@/views/components/ChildrenDemo'
    Vue.component('ChildrenDemo',ChildrenDemo)// 第一个参数 全局组件的名字(字符串类型),第二个参数:引入的组件名(一般都与组件名保持一致)
    

    之后就可以全局使用组件了

  2. 局部引入

    在父组件中引入

    import ChildrenDemo from '@/views/components/ChildrenDemo'
    export default {
         
      components: {
         
        ChildrenDemo
      },
    }
    

    之后就可以在父组件中使用组件了

    <ChildrenDemo></ChildrenDemo>
    <!-- 或 -->
    <children-demo></children-demo>
    

一、props属性绑定(父组件向子组件传递数据)

在子组件 prop 中可以注册一些自定义组件属性,父组件调用子组件时可以向 prop 中的自定义属性传值。

子组件代码:

<template>
  <div class="ChildrenDemo">
    <h1>{
  {title}}</h1>
  </div>
</template>

<script>
export default {
     
  name: 'ChildrenDemo',
  props:['title'],
  components: {
     
  },
  data () {
     
    return {
     
    }
  }
}
</script>

父组件代码

<template>
  <div class="parent">
    <ChildrenDemo title="向子组件传递的title值"></ChildrenDemo>
  </div>
</template>

prop 也可以通过 v-bind 动态赋值

<ChildrenDemo :title="xxx"></ChildrenDemo>

如果要将一个对象的所有 property 都作为 prop 传入,你可以使用不带参数的 v-bind

例如,对于一个给定的对象 post

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值