Vue父组件与子组件间的传递

Vue父组件与子组件间的传递

1.父组件向子组件传递

通过在子组件中使用 props 来接收父组件传递来的值。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			
			<ul>
				<schoolname v-for="item in schoolList" :name="item"></schoolname>
			</ul>
		
		</div>
		
		
		
	</body>
	
	<script type="text/javascript">
		
		Vue.component("schoolname",{
			props:['name'],
			template:`<li>
			<h3>学校名字:{{name}}</h3>
			</li>`,
		})
		
		let app = new Vue({
			el:'#app',
			data:{		
				schoolList:["清华","北大","中大"],
			}

		})
	</script>
</html>

以下面例子:在子组件中使用 $emit 将子组件的值向父组件传递,

1、this.$emit('childvalue',name) 触发一个叫 childvalue的事件 并且传递 name 值。

2、@childvalue='changeEvent' 监听了一个叫 childvalue的事件 事件发生触发 changeEvent函数。
3、在父组件中 创建 changeEvent:function(data) 函数并用data接收子组件传递过来的值。

2. 子组件向父组件传递

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			
			<ul>
				<!-- @childvalue监听 childvalue事件  事件发生触发  changeEvent函数-->
				<schoolname @childvalue='changeEvent' v-for="item in schoolList" :name="item"></schoolname>
			</ul>

			<h2>选中的学校是:{{chooseSchool}}</h2>
	
		</div>
		
		
		
	</body>
	
	<script type="text/javascript">
		
		Vue.component("schoolname",{
			props:['name'],
			template:`<li>
			<h3>学校名字:{{name}}</h3>
			<button  @click="chooseEvent(name)">选择学校</button>
			</li>`,
	
			methods:{
				chooseEvent:function(name){
					console.log(name);
					// 将子组件的值向父组件传递
					//触发一个叫 childvalue的事件 并且传递name值
					this.$emit('childvalue',name)
					
					
				}
			}
			
		})
		
		let app = new Vue({
			el:'#app',
			data:{
				
				schoolList:["清华","北大","中大"],
				chooseSchool:""				
			},
			methods:{
				changeEvent:function(data){

					console.log(data);
					
					this.chooseSchool=data;
				
				}
			}

		})
	</script>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值