Web前端必做vue笔记之一:组件传值(一)
组件之间的关系
1.父级向子级传递数据
2.子级向父级传递数据
3.非父子级传递数据
//父级向子级传递数据: 使用属性传递
//父级中
<template>
<div>
<Child :msg="message"></Child> <!--//给组件自定义一个属性名并绑定 -->
</div>
</template>
<script>
import Child from './components/Child.vue'
export default {
components:{
Child
},
data(){
return{
message:'app.vue data'
}
}
}
</script>
//子级中
<template>
<div>
<h1>{{msg}}</h1>
</div>
</template>
<script>
export default {
props:["msg"], //里面是个数组的字符串,通过props拿到属性名msg
}
</script>
//子级向父级传递数据,用自定义事件
//子级中
<template>
<div>
<button @click="sendData">传递数据</button>
</div>
</template>
<script>
export default {
data(){
return {
childData:"I'm child"
}
},
methods:{
sendData(){
this.$emit("myevent",this.childData) //第一个参数为自定义事件,第二个为要传的数据
}
}
}
</script>
//父级中
<template>
<div>
<Child @myevent="changeData" :msg="message"></Child> <!--//给组件自定义一个属性名并绑定 -->
</div>
</template>
<script>
import Child from './components/Child.vue'
export default {
components:{
Child
},
data(){
return{
childData:'',
}
},
methods:{
changeData(childData){ //用这个事件获取子级的数据
console.log(childData);
this.childData = childData;
}
}
}
</script>