单文件组件

一、组件

认识组件:
组件可以简单的理解为模块化的单元,Vue组件能够提高代码重用性的。使用组件可以解决频繁更改需求的问题
组件分类
全局组件: 指在不同作用域内均可使用的组件.
局部组件: 指只在定义该组件的作用域内可以使用的组件.
备注: 作用域即Vue对象及管理视图区域.[类似Java中全局变量和局部变量]

定义组件步骤:
第1步: 创建组件
第2步: 绑定组件内容/模板
第3步: 应用组件

全局组件:
格式:

		Vue.component("组件名",{
			template:"组件内容"或"#template的id值"
		})

说明:
1.全局组件的声明,必须编写在任何js方法体之外.
2.组件内容中 有且只有 1个根标签,包裹其他内容.
3.template标签是Vue提供的一个标签,必须声明template标签来定义组件内容.
在这里插入图片描述

局部组件:
格式:

	var vm=new Vue({
		省略...,
		components:{
			"局部组件名":{template:"组件内容"或"#template的id值"}
		}
	})

说明:
1.局部组件必须在某个Vue对象中声明
2.组件内容中 有且只有 1个根标签,包裹其他内容
3.template标签是Vue提供的一个标签,必须声明template标签来定义组件内容
在这里插入图片描述

作用域:
全局组件可以在任意Vue对象管理的视图区域中使用.
局部组件只能在当前Vue对象管理的视图区域中使用.

使用组件:
1.在Vue对象的管理的视图区域中,编写<组件名>标签即可.本质是将组件内容粘贴到此处.
2.可以使用N次组件.[类似于 声明1个方法,可以调用多次方法进行执行


二、组件通信

组件嵌套: [类似标签嵌套]
Vue中支持组件之间的嵌套.当组件发生嵌套时,嵌入的组件[内层]称为子组件,被嵌入的组件[外层]称为父组件.
备注: Vue对象本身就是一种组件,因此声明的局部组件属于Vue对象的子组件.
在这里插入图片描述
在这里插入图片描述

格式:

var vm=new Vue({
	省略...,
	components:{
		"父组件名":{//Vue中组件名称不支持 驼峰命名法
			template:"父组件模板",
			components:{//定义子组件,语法同上
				"子组件1":{
					template:"子组件模板"
				},
				"子组件2":{
					template:"子组件模板"
				},
				....
			}
		}
	}
})

使用要求:
子组件只能在当前父组件的组件模板中使用.

定义子组件的事件:
第1步: 创建父子组件
按照组件嵌套规则定义即可
第2步: 定义子组件事件
在子组件模板内容中,以Vue指令绑定事件,并指定事件处理函数.
注意: 子组件事件的处理函数,必须来自当前子组件.无法引用外部的父组件的函数.
在这里插入图片描述
子组件向父组件传递事件
在这里插入图片描述
请添加图片描述

父组件向子组件传递数据
第1步: 子组件自定义属性

		components:{//子组件: 局部组件
			"子组件名":{//Vue中组件名称不支持 驼峰命名法
				省略...,
				props:["属性名1","属性名2"...] //为当前组件,自定义属性.
			}
		}

第2步: 父组件通过属性,向子组件传递数据
父组件模板内容:
<子组件名 v-bind:属性名=“父组件的数据”></子组件名>

第3步: 在子组件中应用属性值[获得父组件的数据]
在子组件的模板中以{{属性名}}方式引用属性的值
请添加图片描述


三、插槽
插槽:
介绍:
在组件化开发中,虽然使用同1个组件,但是在不同的使用场景中组件的部分内容需要有不同的显示. 因此,需要在组件中预留一个位置,当使用插槽时向该位置添加具体内容.此位置称为插槽(slot).
请添加图片描述

1、匿名插槽:
在这里插入图片描述2、具名插槽在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值