组件的属性

组件的属性有两种写法:1、简单声明   2、详细叙述

1、简单声明

写法:props:["属性名1","属性名2",......] 

须知:属性可以多传  但是注册了的属性就必须传 不然有可能会在使用时因为取值问题出BUG

主要用途:用于组件之间的传值,正常情况下被导入的那个组件内想使用导入它的那个组件的data数据值是不能实现的,这里的组件的属性可以办到。在其它组件中使用该组件时用到的对应的属性设置的值会传给该组件。

创建属性:

<template>
    <div>
        <div>{{name1}}</div>
        <div>{{age}}</div>
    </div>
</template>

<script> 
    export default{
        //注册属性
    props:["name1","age"]
    }
</script>

 在其它组件中使用该组件并给该属性传值:

<template>
 <div>
   <test1 :name1="name1" age="age"></test1>
 </div>
</template>

<script>
import test1 from "@/componentprops/test1.vue"
export default {
  data() {
    return {
      name1:"zs",
      age:30
    }
  },
  components:{
    //注册first组件
    test1
  }
}
</script>

页面显示:

 

 

 2、详细叙述

详细叙述除了指定的属性名外,还指定属性的类型,默认值,是否必填等;属性的类型验证只是一种验证提示 不会阻止程序运行。

写法:

props: {
	propA: Number,		// 基础的类型检查 (`null` 匹配任何类型)
	propB: [String, Number],	// 多个可能的类型
	propC: {	type: String,    //类型
     		 required: true	// 必填的字符串
   	},
	propD: {	type: Number,
      		default: 100	// 带有默认值的数字
    	},
	propE: {	type: Object,	// 带有默认值的对象或者数组填Array
		default: function () {	// 不建议直接填对象(因为对象直接量会一直占用内存),一般使用工厂函数,调用时才创建对象节省资源(面试)
        		return { message: 'hello' }
      		}
    	},
	propF: {
      		validator: function (value) {// 自定义验证函数返回为true就代表数据符合我们规定
			return ['success', 'warning', 'danger'].indexOf(value) !== -1
      		}
    	}
  }

prop*就是属性名,*号(代表A B C D E F)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值