• 父子组件的通信


    父子组件关系图

    • 子组件通过props属性拿到父组件的内容,父组件通过接受子组件发射的事件拿到子组件内容

    父组件向子组件传递数据

    • 在父组件里以标签的形式写入子组件

    • 通过v-bind动态绑定子组件的属性来获取父组件的数据,此时banners=bbanners

    <home-swiper :banners="bbanners" />
    
    • 父组件中传递过来的数据都存于子组件的props中
    export default {
      name: "HomeSwiper",
      props: {
          banners: {
            type: Array,
            default () {
              return []
            }
         }
      }
    
    • props值的配置有两种方式:

      • 通过数组
      • 通过对象
      props: ['cmessage', 'ccomics']
      
      props: {
      <!-- 通过使用对象的方法可以限制数据类型 -->
          cmessage:String,
          ccomics:Array
      
      props: {
      <!-- 如果想要更多的限制,可以将数据都设为一个对象 -->
          cmessage: {
              type: String,
              default: 'aaa',
              required: true //表示在使用cpn标签时必须传入cmessage属性
          }
      

    子组件向父组件传递数据

    • 核心$emit()
    1. 在子组件中通过$emit()发射事件,父组件才能拿到子组件的内容
    itemClick(index) {
        	// 发射的事件名:'tabClick',额外发射过来的参数:index
    		this.$emit('tabClick', index)
    	}
    
    1. 在父组件中通过v-on监听子组件发射过来的事件
    <tab-control @tabClick="tabClick" />
    
    1. 在父组件中对监听过来的子组件事件进行相关操作
    tabClick(index) {
    	console.log(index)
    }
    

    [总结]: 将子组件的自定义事件通过$emit()发射给父组件,父组件通过@自定义事件="父组件自定义事件"来监听,之后父组件可以对监听来的子组件事件进行一些处理

  • 相关阅读:
    Algs4-1.1.27二项分布
    Algs4-1.1.25数学归纳法证明欧几里得算法
    Algs4-1.1.26证明以下代码能够将a、b、c按照升序排列
    Algs4-1.1.24欧几里得算法求最大公约数
    Algs4-1.1.23区分在与不在白名单中的值
    Algs4-1.1.22以缩进方式打印递归参数
    微服务架构是什么?
    python 迭代器
    python 列表推导
    python 创建二维数组的方法
  • 原文地址:https://www.cnblogs.com/jincanyu/p/14351419.html
Copyright © 2020-2023  润新知