Vue父组件向子组件传递数据

父组件向子组件传值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>组建组件的方式</title>
		<script src="https://unpkg.com/vue/dist/vue.js"></script>
	</head>
	
	<body>
		<!--父组件向子组件传值,属性名称也需要使用- -->
		<div id="app">	
			<my-component :parent-msg="msg"></my-component>
		</div>
			
		<template id="temp1">
			<div>
				<!--经过测试,子组件无法直接获取父组件中的data-->
				<div>{{title}}</div>
				<div>{{parentMsg}}</div>
				<button @click="changeMsg">修改</button>
			</div>
			
		</template>
		
		<script type="text/javascript">
			var vue =new Vue({
				el:"#app",
				data:{	
					msg:'我是父组件中message'
				},
				components:{
					'my-component':{
						template:"#temp1",
						data(){
							return {
								title:'我是标题'
							}	
						},
						//props中的数据都是通过父组件传给子组件的
						//props中的数据都是只读的,无法直接赋值
						//props建议使用对象,并给每一个props声明类型和默认值
						props:{
							parentMsg:{
								type:String,
								defult:null
							}
						},
						methods:{
							changeMsg(){
								this.parentMsg="我被修改了"
							}	
						}
							
					}
				}
			})
			
		</script>
	</body>
</html>

父组件向子组件传递方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>组建组件的方式</title>
		<script src="https://unpkg.com/vue/dist/vue.js"></script>
	</head>
	
	<body>
		<!--父组件向子组件传递方法  使用v-on 
			v-on 表示子组件调用方法的名称,值表示父组件传递的方法
			这里也不能使用驼峰规则,建议也不要使用- ,这里的名称就使用单个单词
		-->
		<div id="app">	
			<div>{{msg}}</div>
			<div>{{title}}</div>
			<my-component @change="changeMsg">修改</my-component>
		</div>
			
		<template id="temp1">
			<div>
				<!--经过测试,子组件无法直接获取父组件中的data-->
				<button @click="changeMsg">修改</button>
			</div>
		</template>
		
		<script type="text/javascript">
			var vue =new Vue({
				el:"#app",
				data:{	
					msg:'我是父组件中message',
					title:'我是父组件的标题'
				},
				methods:{
					changeMsg(msg,title){
						this.msg=msg,
						this.title=title
					}
				},
				components:{
					'my-component':{
						template:"#temp1",
					    methods:{
							changeMsg(){
								this.$emit("change","修改了父组件的msg","修改了父组件的title")
							}
						}
					}
				}
			})
			
		</script>
	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值