您现在的位置是:首页 >学无止境 >【vue父子组件传值】网站首页学无止境
【vue父子组件传值】
简介【vue父子组件传值】
【vue父子组件传值】
父传子
在父组件的子标签中写一个自定义属性标签
子组件设置props属性就可以接受父组件传值
子传父
1、在父组件中给引用的子组件注册一个事件(这个事件的名字是自定义的)
2、子组件可以触发这个事件$emit('事件名字')
子组件给父组件传递数据
$emit方法第二个参数可以定义子组件给父组件传递的内容
在父组件中怎么拿到这内容:
- 父组件这个方法没有自定参数,在父组件的方法直接加这个参数就可以拿到
- 父组件有自定义参数,可以传入 event也可以拿到子组件传递的数据。通过$event只能传递第一个参数。
//第一个参数:自定义的名字
//第二个参数:传递的数据
// this.$emit('tofather', '传过去的数据')
this.$emit('tofather', { name: 'zs', age: 18 })
代码示例
<body>
<div id='app'>
<father></father>
</div>
<template id="father">
<div>
<son :type="type1" @tofather="tofather1(1,$event)"></son>
</div>
</template>
<template id="son">
<div>son
<button @click="toFa">toFa</button>
</div>
</template>
<script>
// 父组件
Vue.component('father', {
template: '#father',
data() {
return {
type1: 'free'
}
},
methods: {
// 接收来自子组件的传值
tofather1(data, data2) {
console.log(data);
console.log(data2);
}
}
})
// 子组件
Vue.component('son', {
template: '#son',
data() {
return {
}
},
props: {
type: {
type: [String, Number],
default: () => {
return 'free'
}
}
},
methods: {
toFa() {
//第一个参数:自定义的名字
//第二个参数:传递的数据
// this.$emit('tofather', '传过去的数据')
this.$emit('tofather', { name: 'zs', age: 18 })
}
},
created() {
// this.$emit('tofather', { name: 'zs', age: 18 })
console.log(this.type);
}
})
const vm = new Vue({
el: '#app',
data: {
},
methods: {
}
})
</script>
</body>
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。





U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结