Vue父子组件间通信

  • 父子组件通信
    • 父传子 (props)
    • 子传父 (自定义事件)
    • 完整代码
    • 效果

父子组件通信

父传子 (props)

(1)在父组件中使用子组件时,给子组件一个自定义属性,这个属性绑定了父组件中的数据
(2)然后在子组件中用props接收自定义的属性
(3)子组件使用父组件数据
//(1)父组件中:
<Son :fatherName="name" :fatherAge="age"/>
//(2)子组件中:
props: ['fatherName','fatherAge']
//(3)子组件中:
<h3>我的父亲是{{fatherName}} 组件</h3>
<h3>我的父亲今年{{fatherAge}} 岁了</h3>

子传父 (自定义事件)

(1)在父组件中给子组件绑定自定义事件,<Son @xxx="func"/>
func是自定义事件被触发后,执行的回调(即自定义事件被触发后,父组件该做些什么)(2)如何触发自定义事件:子组件做了某些事情后,告诉父组件,我触发了自定义事件,并捎带一些数据
(3)父组件使用子组件数据
//(1)父组件中:
<Son @getFromSon="showSon"/>showSon(name,age) {console.log(`My son's name is ${name}, he is ${age} now!`);this.sonName = namethis.sonAge = age
}
//(2)子组件中:
<button @click="sendToFather">点我传信息给父亲</button>sendToFather() {this.$emit('getFromSon',this.name,this.age)
}
//(3)父组件中:
<h3>我的儿子是{{sonName ? sonName : '不知道'}}</h3>
<h3>我的儿子今年{{sonAge ? sonAge : '不知道多少'}} 岁了</h3>

完整代码

Father.vue:

<template><div><h3>我是{{name}} 组件</h3><h3>我今年{{age}} 岁了</h3><h3>我的儿子是{{sonName ? sonName : '不知道'}}</h3><h3>我的儿子今年{{sonAge ? sonAge : '不知道多少'}} 岁了</h3><br><br><Son :fatherName="name" :fatherAge="age" @getFromSon="showSon"/></div>
</template><script>import Son from '@/components/Son.vue'export default {name: 'Father',data() {return {name: 'AAA',age: 32,sonName: '',sonAge: 0}},components: { Son },methods: {showSon(name,age) {console.log(`My son's name is ${name}, he is ${age} now!`);this.sonName = namethis.sonAge = age}}}
</script><style></style>

Son.vue:

<template><div><h3>我是{{name}} 组件</h3><h3>我今年{{age}} 岁了</h3><h3>我的父亲是{{fatherName}} 组件</h3><h3>我的父亲今年{{fatherAge}} 岁了</h3><button @click="sendToFather">点我传信息给父亲</button></div>
</template><script>export default {name: 'Son',data() {return {name: 'aaa',age: 6}},props: ['fatherName','fatherAge'],methods: {sendToFather() {this.$emit('getFromSon',this.name,this.age)}}}
</script><style></style>

效果

【Vue父子组件间通信】相关推荐

  1. vue 父子组件间通信

    前言 在vue项目中,封装组件,涉及到父子组件的传值,本文主要讲解父子组件之间传值的方法. 一.props / $emit 适用于父子组件通信,单向数据流,这种方法是 vue 组件的基础. 二.ref ...

  2. Vue父子组件间通信

    组件是vue.js最强大的功能之一,但组件之间的作用域是相互独立的,这就意味着不同组件之间的数据是无法相互引用的.为实现组件之间的通信,vue为我们提供了三种方式:prop.ref.emit. 首先创 ...

  3. Vue中组件间通信的方式

    Vue中组件间通信的方式 Vue中组件间通信包括父子组件.兄弟组件.跨级组件.非嵌套组件之间通信. props $emit props $emit适用于父子组件的通信,这种组件通信的方式是我们运用的非 ...

  4. Vue实现组件间通信的七种方式

    1. props / $emit 父组件通过props的方式向子组件传递数据,而通过$emit 子组件可以向父组件通信: 父传子:父组件通过import引入子组件,并注册,在子组件标签上添加要传递的属 ...

  5. vue中组件间通信的6种方式

    前言 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互进行直接的引用,所以组件间的相互通信是非常重要的. 除了使用vuex外还有下面6种组件间 ...

  6. vue -- watch侦听器与父子组件间通信

    watch侦听器 方式一 1.默认有两个参数 newValue与oldValue 2.如果是对象类型那么拿到的是代理对象 如果要进行深度监听 需要加上 deep : true 如果想要第一次渲染直接执 ...

  7. Vue 父子组件间的通信

    前言 在 Vue 项目中父子组件的通信是非常常见的,最近做项目的时候发现对这方面的知识还不怎么熟练,在这边做一下笔记,系统学习一下吧. 1 父组件传值给子组件 1.1 传值写法 父组件传值给子组件,这 ...

  8. Vue2.0入门系列——父子组件间通信

    1.子组件更新,父组件不变 点击"按钮"按钮,子组件数据被修改,父组件数据不变  =========>>>>>>  项目源代码, <hea ...

  9. Vue父子组件互相通信实例

    组件实例之间的作用域是独立的,意味了不应该在子组件的模板内直接引用父组件的数据,但是父子组件之间需要通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件. prop 是父组件用来传 ...

最新文章

  1. 记录某段程序的运行时间
  2. nginx访问控制:如何通过map来控制http_x_forwarded_for访问限制
  3. Emacs中使用Forms-mode以表格形式展示/编辑简单的文本数据
  4. 排序的几种方法 oc
  5. CSS 布局实例系列(四)如何实现容器中每一行的子容器数量随着浏览器宽度的变化而变化?...
  6. 探索未知种族之osg类生物---呼吸分解之更新循环一
  7. 刷题总结——xor(ssoj)
  8. C++远征之封装篇——字符串类型
  9. linux 中断 进程,linux中断分上下部分原因
  10. 【pytorch】pytorch-LSTM
  11. Windows PE的DIY你都会:那你的电脑知识已经超越了90%的人
  12. Yaml:基本语法使用
  13. 计算机组装专周实训心得,电脑组装实训心得3篇
  14. refresh()方法
  15. 中国科学技术大学计算机考研好考吗,中国科学技术大学计算机考研复习方法谈...
  16. antd4.x [antd: Switch] `value` is not a valid prop, do you mean `checked`? 解决办法
  17. Java创建对象方式初谈
  18. 量子计算基础——矩阵语言
  19. arduino数字端口输出电压可驱动多大继电器呢_单片机实例分享,自制数字示波器...
  20. 安全科普:流量劫持的方式和途径

热门文章

  1. FPGA烧录【pof文件】【sof文件】
  2. javascript等比例缩放图片的实现代码
  3. 2022年西安导游资格考试每日一练及答案
  4. 鸿蒙系统背后的故事,EMUI 11系统设计背后的故事
  5. 数据压缩原理 实验三 Huffman编解码算法实现与压缩效率分析
  6. 百度惊现区块链项目“莱茨狗”,俄罗斯财长称不会允许自由地交易数字货币 | 区块链日报
  7. Linux文件结构和Ubunto常见命令
  8. zz将看板应用于软件开发:从敏捷到精益
  9. Unity国际版forM1Mac
  10. 联发科android11基线,紫光展锐 6 款芯片适配安卓 11 刷新展锐适配 Android 速度记录...