当前位置: 首页 > article >正文

Vue3-子传父

1. 主组件 App.vue(父组件)

  • 在 App.vue 中,我们先引入了子组件 SonCom,这个小家伙将在父组件中出场。

  • 接着,我们写了一个叫 getMessage 的函数。这个函数的任务很简单——接收子组件传来的消息,然后用 console.log 把它打印出来。它就像一个侦听器,专门接收并显示子组件的情报。

    const getMessage = (msg) => {
      console.log(msg)
    }
    
  • 然后我们在模板里使用了 <SonCom />,并且绑定了一个事件 @get-message="getMessage"

    <SonCom @get-message="getMessage" />
    
    • 这里的 @get-message="getMessage" 是关键!意思是:“嘿,SonCom,一旦你触发 get-message 这个事件,我就会跑 getMessage 函数!”
    • 注意这个事件名 get-message。Vue 的事件名可以用连字符(-)来写,这是惯例,防止和其他属性混淆。

2. 子组件 son-com.vue(子组件)

  • 在子组件 SonCom 里,我们定义了一个 emit 对象,这个对象通过 defineEmits 创建,用来发送(emit)事件给父组件。这里指定了一个事件名 get-message,就是父组件绑定的那个。

    const emit = defineEmits(["get-message"])
    
  • 还定义了一个叫 sendMsg 的函数。这个函数干啥呢?就是专门用来“发消息”的。

    • 当你调用 sendMsg 时,它会通过 emit 触发 get-message 事件,并且带上一条信息 'this is son message'。这条信息就会跑到父组件 App.vue 里的 getMessage 函数中。
    const sendMsg = () => {
      emit('get-message', 'this is son message')
    }
    
  • 最后在模板里,放了一个按钮:

    <button @click="sendMsg">触发自定义事件</button>
    
    • 这个按钮的功能就是当你点击它时,执行 sendMsg 函数,触发 get-message 事件,把消息传递给父组件。
    • 点击一下,父组件的 console.log 就能输出子组件传来的信息,简直是一气呵成!

总结

  1. 父组件的 @get-message="getMessage" 监听 get-message 事件,接收到消息就执行 getMessage
  2. 子组件的 emit('get-message', 'this is son message') 触发事件 get-message,并附上信息给父组件。
  3. 所以整个过程就是:点击按钮 -> 子组件发消息 -> 父组件接收到消息并打印。

这样,父子组件就愉快地通过 get-message 事件“对话”了

完整代码:


http://www.kler.cn/a/381501.html

相关文章:

  • iOS应用想要下载到手机上只能苹果签名吗?
  • 《欢乐饭米粒儿9》第五期:用笑声诠释生活,让爱成为日常
  • 引领数字时代:万码优才如何变革IT人才招聘新体验(这里有更精准的推荐)
  • python 五子棋小游戏
  • 彻底理解链表(LinkedList)结构
  • lua学习笔记---面向对象
  • Linux:网络协议socket
  • JAVA学习-练习试用Java实现“斐波那契数列”
  • 【Nginx系列】Nginx 中的`proxy_set_header`指令:Host 字段的区别与联系
  • 免费工单管理利器 优选系统 助力团队协作
  • 论文翻译 | Legal Prompt Engineering for Multilingual Legal Judgement Prediction
  • C++游戏开发:构建高性能游戏世界的基石
  • 【青牛科技】GC6129:摇头机中替代 MS41929 的理想之选
  • FPGA实现以太网(一)、以太网基础知识
  • leecode 44. 通配符匹配
  • 重学Android:自定义View基础(一)
  • Linux高阶——1103—修改屏蔽字信号到达及处理流程时序竞态问题
  • 微信小程序中,点击视频,没有跳转播放,可能是因为没有在app.json中正确注册视频播放页面的路径
  • 聊一聊Elasticsearch的索引的分片分配机制
  • 基于 Encoder-only 架构的大语言模型
  • 后台管理系统的通用权限解决方案(十二)数据模型、基于SpringCloud和Nacos的后端项目搭建
  • Python数据分析NumPy和pandas(二十三、数据清洗与预处理之五:pandas的分类类型数据)
  • java 中List 的使用
  • Vue:事件
  • MATLAB下的四个模型的IMM例程(CV、CT左转、CT右转、CA四个模型),附下载链接
  • 根据某个字段禁用el-table里的checkbox