Vue中父组件传值到子组件
Vue中父组件传值分为两步:
一、父组件中代码中,使用属性绑定向子组件传递数据,
如图, 其中,:titles="title"就是在将父组件的title属性值,传递到子组件所绑定的titles属性中,这时候,子组件就有了一个带有值的titles属性了
<template>
<div class="parent">
<h1>我是父组件</h1>
<childVue :titles="title" :contents="content"></childVue>
</div>
</template>
<script>
import childVue from './child.vue'
export default {
name: 'parant',
components:{
childVue
},
data() {
return {
content: "我是父组件传过来的内容"
};
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
.parent{
width: 500px;
height: 500px;
background: rgb(146, 133, 133);
}
</style>
二、子组件需要接收传过来的属性值
如下代码,子组件需要使用props属性去接受刚刚父组件传递过来的属性titles和contents,需要定义一下属性类型哦
<template>
<div class="child">
<h2>我是子组件</h2>
<h4>{{titles}}</h4>
<h4>{{contents}}</h4>
</div>
</template>
<script>
export default {
name: 'helloChild',
props: {
titles: String,
contents: String
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.child{
width: 400px;
height: 300px;
background: rgb(157, 117, 117);
}
</style>
总结一下:
父组件中引入子组件、注册子组件,tempalte中使用子组件; import 、components、
子组件: props中创建一个属性,接受父组件传的值;
在template中使用 {{contents}};
父组件中的 , :title与子组件中prop添加的属性名称要一致;
=”title“与父组件中data数据中的title名称要一致;
props绑定的写法也可以写成这样的形式
props: {
title: {
type: String, // [String, Number],
default: 1
}
}
Vue中子组件传值到父组件
子组件传值到父组件也有两步。
一:子组件通过$emit触发一个自定义事件,传递属性出去
如下,通过按钮(也可以其它方式,能触发$emit即可),触发$emit方法,传递datas的值出去
<template>
<div>
<h1>children</h1>
<button @click="sendTOParent">向父组件传值</button>
</div>
</template>>
<script>
export default {
data() {
return {
datas: "子组件中的信息"
};
},
methods:{
sendTOParent(){
this.$emit('listenToChildEvent',this.data)
}
}
};
</script>>
2.在父组件中引用子组件的标签中,使用v-on监听该自定义事件并添加一个响应该事件的处理方法
<template>
<div>
<h1>我是父组件</h1>
<children v-on:listenToChildEvent = 'showMsgfromChild'></children>
</div>
</template>>
<script>
import Children from "./Children";
export default {
data() {
return {
};
},
methods:{
showMsgfromChild(data){
console.log(data)
}
},
components: {
Children
},
};
</script>
总结:
子组件通过$emit传递参数出去,在父组件中引用子组件的标签中,使用v-on监听该自定义事件并添加一个响应该事件的处理方法