Appearance
vue组件之间的传值
父组件向子组件传值
父组件传值
- 父组件自定义一个数据(例如:fatherValue)
- 通过自定义属性的方式将fatherValue传给子组件
vue
<template>
<div id="father">
<!-- 使用v-bind命令将父组件中的数据绑定到子组件上 -->
<v-son v-bind:value="fatherValue"></v-son>
</div>
</template>
export default {
name: 'father',
compontents: {
'v-son': son
},
data() {
return {
fatherValue: '父组件的值'
}
}
子组件接值
- 通过特定属性:props来进行接收
- 直接以属性的方式来使用参数
vue
<template>
<div id="son">
<p>{{value}}</p>
</div>
</template>
export default {
name: 'son',
props: {
value:String,
defsult: '默认值'
}
}
子组件向父组件传值
子组件传值
- 子组件中定义一个数据(例如:sonValue)
- 通过自定义事件的方式将sonValue传给父组件(格式:this.$emit('事件名',参数)
vue
<template>
<div id="son">
<input type="button" value="给父组件传值" @click="sendValue">
</div>
</template>
export default {
name: 'son',
data() {
return {
sonValue: '子组件的值'
},
methods: {
sendValue() {
//getSonValue: 是父组件指定的传数据绑定的函数,this.sonValue:子组件给父组件传递的数据
this.$emit('getSonValue', this.sonValue)
}
}
}
父组件接值
- 给子组件实现方法
- 方法中有一个参数
vue
<template>
<div id="father">
<v-son @to="getSonValue"></v-son>
</div>
</template>
export default {
name: 'father',
compontents: {
'v-son': son
},
data() {
return {
fatherValue: ''
},
methods: {
getSonValue(value) {
this.fatherValue = value
}
}
}
兄弟组件之间传值
第一个组件传值
vue
<template>
<div id="firstChild">
<input type="button" value="给兄弟组件传值" @click="sendValue">
</div>
</template>
export default {
name: 'firstChild',
data() {
return {
firstChildValue: '第一个组件的值'
},
methods: {
sendValue() => {
$emit('sendValueEvent', this.firstChildValue)
}
}
}
第二个组件接值
vue
<template>
<div id="secondChild">
<p>{{value}}</p>
</div>
</template>
export default {
name: 'secondChild',
data() {
return {
secondChildValue: ''
},
created() {
this.$on('sendValueEvent', (value) =>{
this.secondChildValue = this.value
}
}
}