组件中的通信

代码:

<html>
<head>
	<script type="text/javascript" src="../js/vue.js"></script>
	<title>组件中的通信 </title>
</head>
<body>
		<!-- 父传子 -->
		<template id="son">
			<div>
				<h3 > {{ mvs }}</h3>
				<h4  > {{ msg }}</h4>
			</div>
		</template>
		<!-- 子传父 -->
		<template id="pre">	
			
		</template>
		<template id="sn">
			<div>
				<button v-for="item in catorys" @click="btnclick(item)">
					{{ item.name }}
				</button>
			</div>
		</template>
		<!-- v-model使用案例 -->
		<div id="app" style="width: 80%">
			<div>
				<font >元数据: {{ title }}</font> <input style="float: right"  type="button" name=""  >
			</div>
			<shw></shw>
			<!-- 父传子组件标签 -->
			<son v-bind:mvs="movives"  v-bind:msg="msgs"></son>
			<!-- 子传父组件标签 -->
			<sn @emitclick="snClick" ></sn>
		</div>
		<!-- //组件中的data必须是函数 -->
	<script type="text/javascript">
			var i=0
		// 注册组件必须放在vue实例化对象的前面,不然会报说没有注册这个组件
		Vue.component("shw",{							//template必须包在div里面不然,加和减方法会报说没有定义
			template:`<div>	
			<h1> {{ num }}</h1>
			<button @click="increment">+</button>
			<button @click="decrement">-</button>
			</div>
			`,
			data(){								//返回必须是一个对象,并且data不能是对象只能是函数
				return {	
					title:"组件中的数据",
					num:0
				}
			},
			methods: {
				increment() {
					this.num++
				},
				decrement() {
					this.num--
				}
			},
		})
		//2.父子组件之间通信,数据从父组件到子组件 props
		Vue.component("son",{
			template:"#son",
			props:["mvs","msg"],
			data(){
				return {}
			}
		})
		//3.子组件向父组件传递数据
		Vue.component("sn",{
			template:"#sn",
			data(){
				return {
					catorys:[
						{id:1,name:"分类1"},
						{id:2,name:"分类2"},
						{id:3,name:"分类3"},
						{id:4,name:"分类4"}
					]
				}
			},
			methods:{
				btnclick(item){
					this.$emit("emitclick",item.name)
				}
			}
		})
		//2.父子组件之间通信
		const app=new Vue({
			el:"#app",
			data:{
				title:"组件中访问数据",
				movives:["one","Two","Three","Four"],
				msgs:"父子组件通信测试"
			},
			methods:{
				snClick(item){
					console.log("子组件传过来的数据是----",item)
				}
			}
		}) 
	</script> 
</body>
</html>	

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值