Vue组件化开发(四)| 一起学系列

119 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情

  • 子组件向父组件传值
    • 需要通过自定义事件实现
    • 案例:商品为子组件,购物车为父组件,父组件需要统计商品个数,就需要在子组件个数变化时传值给父组件
    • 父组件设置如下👇 image.png 子组件设置如下👇 image.png
    • 子组件数据变化时,通过$emit()触发自定义事件;自定义事件名称建议使用kebab-case image.png
    • 父组件监听子组件的自定义事件,并设置处理程序 image.png
  • 子组件向父组件传值-自定义事件传值
    • 子组件触发事件时可以向父组件传值。$emit中的数字来传递变化的数值 image.png
    • 父组件在监听事件时需要接受子组件传递的数据
      • 方法一: image.png
      • 方法二: image.png
  • 子组件向父组件传值-组件与v-model
    • v-model用于组件时,需要通过props与自定义事件实现 image.png 子组件设置方式 image.png 另一种写法 image.png
  • 非父子组件传值
    • 指的是兄弟组件或完全无关的两个组件
  • 非父子组件传值-兄弟组件传值
    • 通过父组件进行数据中转 image.png image.png image.png
  • 非父子组件传值-EventBus
    • 当组件嵌套关系复杂时,根据组件关系传值较为繁琐
    • 组件为了数据中转,data中会存在许多与当前组件功能无关的数据
    • EventBus(事件总线)是一个独立的事件中心,用于管理不同组件间的传值操作
    • EventBus通过一个新的Vue实例来管理组件传值操作,组件通过给实例注册事件、调用事件来实现数据传递 image.png
    • 操作步骤
      • 发送数据的组件触发bus事件,接收的组件给bus注册对应事件 image.png
      • 给bus注册对应事件通过$on()操作 image.png

本期的内容就到这里啦!让我们明天一起继续学习Vue.js吧!