VUE-组件

根组件

<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="https://unpkg.com/vue@next"></script>
	</head>
	<body>
		<div id = "app">
			<cp></cp>
		</div>
		<template id = "cp">
			<p>{{mn}} <button @click="fun">反馈</button></p>
		</template>
		<script>
		
			
			//全局组件开发  template  可视区域
			//现在有2个组件,cp app  在app中播放cp中的东西
 			const cp={
				data(){
					return{
						mn:'梦华录'
					}
				},
				methods:{
					fun(){
						alert("影片真好看!")
					}
				},
				template:'#cp'
			}
			const app={
				data(){
					return{
						
						
					}
				}
				
				
			}
			//创建vue应用
			//let vm = Vue.createApp({})
			//依赖于cp 创建VUE应用  就变成了根组件  就不再是全局组件
			let vm = Vue.createApp(cp)
			//注册组件
			//vm.component('cp',cp)
			//挂载到html结构里
			vm.mount('#app')
		</script>
	</body>
</html>

 全局组件

const cp={},template:'#cp'

vm.component('cp',cp)  注册

vm.mount('#app')   挂载

组件大多是注册局部组件

全局组件在任何地方都可以使用,可能导致用不上这个组件但要加载这个组件,造成资源浪费。

接下来创建局部组件

const cA = {template:`` }

const app={   }, components:{'ca' : cA }

创建并挂载后,在app中调用即可。

如果组件名由2个单词组成,且有大写字母,例如tempCom,调用时要用<temp-com></temp-com>!  很奇怪。

<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="https://unpkg.com/vue@next"></script>
	</head>
	<body>
		<div id = "app">
			<ca></ca>
		</div>
		
		<script>
			const cA = {
				template:`<h3>组件A</h3>`
			}
			const app={
				data(){
					return{
						
					}
				},
				components:{
					//子组件  组件名称-组件
					'ca' : cA
				}
			}
			let vm = Vue.createApp(app)
			vm.mount('#app')
		</script>
	</body>
</html>

组件之间的通信问题

尤其是父组件与子组件之间的通信

cA是app的子组件

props中是接受组件的数据信息,类型不限

 

<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="https://unpkg.com/vue@next"></script>
	</head>
	<body>
		<div id = "app">
			<ca href="向前看向钱冲"></ca>
		</div>
		
		<script>
			//父  ==>  子
			const cA = {
				props:['href'],
				template:`<h3>组件A{{href}}</h3>`
			}
			const app={
				data(){
					return{
						
					}
				},
				components:{
					//子组件  组件名称-组件
					'ca' : cA
				}
			}
			let vm = Vue.createApp(app)
			vm.mount('#app')
		</script>
	</body>
</html>

再来一个例子,父组件给子组件传递一个图片 

<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="https://unpkg.com/vue@next"></script>
	</head>
	<body>
		<div id = "app">
			<ca href="D:\优快云\vue.png"></ca>
		</div>
		
		<script>
			//父  ==>  子
			const cA = {
				props:['href'],
				template:`<img :src = "href">`
			}
			const app={
				data(){
					return{
						
					}
				},
				components:{
					//子组件  组件名称-组件
					'ca' : cA
				}
			}
			let vm = Vue.createApp(app)
			vm.mount('#app')
		</script>
	</body>
</html>

子组件如何传递信息给父组件?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值