vue2.x中props接收父组件的数据(父子组件数据传递)

187 阅读1分钟

props概述

我们可以在官网上得到如下解释

  • 类型:Array | Object

  • 详细:
    props 可以是数组或对象,用于接受来自父组件的数据。props 可以是简单的数组,或者使用对象作为替代,对象允许配置高级选项,如类型检测、自定义验证和设置默认值。

    你可以基于对象的语法使用一下选项:

    1. type:可以是下列原生构造函数中的一种:String、Number、Boolean、Array、Object、Data、Function、Symbol、任何自定义的构造函数、或上述内容组成的数组。会检查一个prop是否是给定的类型,否则抛出警告。
    2. default:any
      为该prop指定一个默认值。如果该prop没有传入,则换做用这个值。对象或数组的默认值必须从一个工厂函数返回。
    3. required:Boolean
      定义该prop是否是必填项。是非生产环境中,如果这个值truthy且该prop没有被传入,则会被控制台抛出一个警告。
    4. validator:Function
      自定义验证函数会将该prop的值作为唯一的参数带入。在非生产环境下,如果该函数返回一个falsy的值(也就是验证失败),控制台将会抛出一个警告。

可以看出,我们可以对这些属性做一个定制。也可以对定制的属性进行验证,设置默认值,同时也可以支持函数(事件)。

数组形式

props: ["track","mode","operate","head","total"]

对象形式

 props: {
    mode: {
      type: String,
      required: true,
      default: '',
    },
    track: {
      type: Object,
      default: function() {
        return {}
      },
    },
    operate: {
      type: Array,
      default: function () {
        return []
      },
    },
    head: {
      type: Array,
      required: true,
      default: function () {
        return []
      },
    },
     total: {
      type: Number,
      default: 0,
    }
  }