Vue3组件化

Component组件是可复用的Vue实例,且带有一个名字,可以把组件作为自定义元素来使用

可以将项目中重复出现的页面结构定义为Vuew的组件实例,或将特殊功能封装成组件:
组件分为:
全局组件和局部组件

全局组件,在所有Vue实例中都可以使用
通过应用程序实例app的component()方法来定义
语法:app.component(组件名,选项对象)

1、全局组件:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="./js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<!-- 组件名就是条用组件的标签名 -->
			<!-- 第三步 组件之间多次条用,互相独立-->
			<my-hello></my-hello>
		</div>
		<!-- 第二步 -->
		<template id="content">
			<div>
				<h3>自定义全局组件</h3>
				<p>name:{{name}}</p>
			</div>
		</template>
		<script>
			const app=Vue.createApp({
				data(){
					return{
						msg:'welcome'
					}
				}
			})
			// 第一步,可以多次调用my-hello,组件进行复用
			// app.component('my-hello',{//第一种
				app.component('MyHello',{//第二种//采用首字母大写,帕斯卡命名法
				//组件的具体定义,组件名建议用短横线连接,全小写
				template:'#content',
				//组件的数据仓库
				data(){
					return{
						name:'tom'
					}
				}
				
			})
			
			//这里的vm本身也是一个组件,称为Root根组件
			const vm=app.mount("#app");
			console.log(app)//应用程序实例
			console.log(vm)//Vue实例
		</script>
	</body>
</html>

 2、局部组件

局部组件,只能再构建组件的Vue实例的容器范围内使用

依赖于某个Vue实例,通过选项components:{}来定义

语法:
Vue.createApp({
    components:{
        'component-a':选项对象,
        'component-b':选项对象
    }
})

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="./js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<p>{{msg}}</p>
		</div>
		<template id="b">
			<div>
				<h3>组件a</h3>
				<comp-a></comp-a>
			</div>
			
		</template>
		<template id="a">
			<div>
				<h3>组件a</h3>
				<p>{{ msg }}</p>
			</div>
			<comp-b></comp-b>
		</template>
		<script>
			Vue.createApp({
				component:{//局部组件
				'comp-a':{//父组件
					template:'#a',
					data(){
						return{
							msg:'hellow'
						}
					},
					component:{//局部组件
						'comp-b':{//子组件,comp-b只能再comp-a中调用
							template:'#b',
							data(){
								return{
									msg:"bbb"
								}
							}
						}
					}
				}
			 }
			}).mount('#app')
		</script>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值