子向父组件传值:
1,子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
2,将需要传的值作为$emit的第二个参数,该值将作为实参传给响应自定义事件的方法
3,在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../vue.min.js"></script>
</head>
<body>
<div id="app">
<v-child></v-child>
</div>
<template id="bbb">
<p>
<input v-model="ipt" />
<button @click="send()">发送</button>
{{info}}
</p>
</template>
<template id="aaa">
<p>
{{str}}
{{info}}
<v-childl :name='str' @jieshou="jieshousj"></v-childl>
</p>
</template>
<script>
var vm = new Vue({
el:'#app',
components:{
'v-child':{
template:'#aaa',
data:function(){
return {
info:"父组件",
str:''
}
},
methods:{
jieshousj:function(s){
this.str=s
}
},
components:{
'v-childl':{
template:'#bbb',
data:function(){
return {
info:'子组件',
ipt:''
}
},
methods:{
send(){
console.log(this.ipt)
this.$emit('jieshou',this.ipt)
}
}
}
}
}
}
})
</script>
</body>
</html>
父组件向子组件传值:
1,子组件在props中创建一个属性,用以接收父组件传过来的值
2,父组件中注册子组件
3,在子组件标签中添加子组件props中创建的属性
4,把需要传给子组件的值赋给该属性
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../vue.min.js"></script>
</head>
<body>
<div id="app">
<v-child></v-child>
</div>
<template id="bbb">
<p>
{{name}}
{{info}}
</p>
</template>
<template id="aaa">
<p>
<input v-model="ipt" />
<button @click="send()">发送</button>
{{info}}
<v-childl :name='str'></v-childl>
</p>
</template>
<script>
var vm = new Vue({
el:'#app',
components:{
'v-child':{
template:'#aaa',
data:function(){
return {
info:"父组件",
str:'sss',
ipt:''
}
},
methods:{
send(){
this.str=this.ipt
}
},
components:{
'v-childl':{
template:'#bbb',
data:function(){
return {
info:'子组件'
}
},
props:['name']
}
}
}
}
})
</script>
</body>
</html>
网友评论