1.父向子传递数据
1>定义一个父组件和一个子组件
2>父组件通过v-bind绑定传递的数据 :parentmsg="msg"
3>子组件需要通过 props:['']来接收数据 props: ['parentmsg'],
<body>
<div id="app">
<comp1 :parentmsg="msg"></comp1>
</div>
<template id="tmpl1">
<div>
<h1>这是子元素--{{parentmsg}}</h1>
</div>
</template>
<script>
var comp1 = {
template: '#tmpl1',
props: ['parentmsg'],
}
var vm = new Vue({
el: '#app',
data: {
msg: '我是父组件中的数据',
},
components: {
comp1
}
})
</script>
</body>
2.子向父传递数据
1>子组件通过一个触发一个事件来调用向父组件传递数据的方法 @click="sendMsg"
2>通过 this.$emit('func',this.msg) 传递数据给父组件 来调用父组件上绑定的方法 @func="getMsgFromSon"
3>通过方法拿到子组件传递过来的数据
methods: {
getMsgFromSon(data){
this.msgSon=data
}
},
<body>
<div id="app">
<comp1 :parentmsg="msg" @func="getMsgFromSon"></comp1>
<h1>{{msgSon}}</h1>
</div>
<template id="tmpl1">
<div>
<h1>这是子元素</h1>
<input type="button" value="向父组件传递消息" @click="sendMsg"/>
</div>
</template>
<script>
var comp1 = {
template: '#tmpl1',
props:['parentmsg'],
data(){
return{
msg:'我是子组件中的数据'
}
},
methods:{
sendMsg(){
this.$emit('func',this.msg)
}
}
}
var vm = new Vue({
el: '#app',
data: {
msg:'我是父组件中的数据',
msgSon:''
},
methods: {
getMsgFromSon(data){
this.msgSon=data
}
},
components: {
comp1
}
})
</script>
</body>