组件知识学习记录


什么是组件?
答:组件是可复用的 Vue 实例。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(1)全局组件:

全局注册:
Vue.component('my-component-name', {
  // ... 选项 ...
})
这些组件是全局注册的。也就是说它们在注册之后可以用在任何新创建的 Vue 根实例 (new Vue) 的模板中
全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生
---------------------------------------------------------
(2)局部组件:

var ComponentA = { /* ... */ }
var ComponentB = { /* ... */ }
new Vue({
	el: '#app',
	  	components: {
	    	'component-a': ComponentA,
	    	'component-b': ComponentB
	  	}
	})
注意局部注册的组件在其子组件中不可用。例如,如果你希望 ComponentA 在 ComponentB 中可用,则你需要这样写:
var ComponentA = { /* ... */ }
var ComponentB = {
	components:{
	   'component-a': ComponentA
	}, 
}
----------------------------------------------------------
(3)父传子数据,组件用props进行添加属性方便子组件接收数据
    1.静态传送<blog-post title="My journey with Vue"></blog-post>
    2.动态传送
     		:prop 可以通过 v-bind 动态赋值
    <blog-post v-bind:title="post.title"></blog-post>
	任何类型的值都可以传给一个 prop,字符串,数字,数组,对象,布尔值,

	传入一个对象的所有 property
	如果你想要将一个对象的所有 property 都作为 prop 传入,你可以使用不带参数的 v-bind (取代 v-bind:prop-name)。例如,对于一个给定的对象 post:

	post: {
	  	id: 1,
	  	title: 'My Journey with Vue'
	}

	<blog-post v-bind="post"></blog-post>
	等价于:

	<blog-post
	  v-bind:id="post.id"
	  v-bind:title="post.title"
	></blog-post>


	子传父使用$emit
---------------------------------------------------------
(4)
props属性验证
props:{
    // 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
    propA: Number,
    // 多个可能的类型
    propB: [String, Number],
    // 必填的字符串
    propC: {
      	type: String,
      	required: true
    },
    // 带有默认值的数字
    propD: {
      	type: Number,
      	default: 100
    },
    // 带有默认值的对象
    propE: {
      	type: Object,
      	// 对象或数组默认值必须从一个工厂函数获取
      	default: function () {
        	return { message: 'hello' }
      }
    },
    // 自定义验证函数
    propF: {
      	validator: function (value) {
       	 	// 这个值必须匹配下列字符串中的一个
        	return ['success', 'warning', 'danger'].indexOf(value) !== -1
      	}
    }
  }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gjanuary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值