第三章 御膳房组件传膳 - Props如御赐食材,$emit似传菜铜铃

70 阅读1分钟


(臣领旨,谨以御膳房传膳古法演绎Vue组件通信之道,恭请圣览——)

乾清宫前殿:组件如宫室

<!-- 御膳房总管组件 -->
<template>
  <div class="huang-cheng">
    <h3>御膳房今日当值:{{ chefName }}</h3>
    <!-- 御赐菜单如props入庖厨 -->
    <yu-chu 
      :menu="currentMenu" 
      @shang-cai="handleShangCai"
    />
    <p>传菜监记录:{{ servingRecord }}</p>
  </div>
</template>

庖厨深处:props接御赐

// 御厨子组件
export default {
  props: {
    menu: {
      type: Array,
      required: true,
      validator: (value) => value.length > 0 // 御膳必验
    }
  },
  methods: {
    prepareDish() {
      // 备膳完成后...
      this.$emit('shang-cai', this.menu[0]) // 铜铃响彻九重殿
    }
  }
}

传膳七步诀:

  1. 御笔钦点膳单
    父组件通过:menu传递数据,如圣旨降于庖厨
  2. 尚膳监验封
    props配置校验规则,确保御膳合规制
  3. 铜铃系红绳
    子组件emits: ['shang-cai']声明可触发事件
  4. 膳成摇铃响
    this.$emit('shang-cai', payload)如铜铃传讯
  5. 黄门急奏报
    父组件@shang-cai监听事件如闻铃声
  6. 银针试毒理
    事件参数需做严格校验,防膳中藏奸
  7. 玉盘呈御前
    更新父组件状态,完成数据流转

特别御制条例:

  • 单向传膳制
    props遵循单向数据流,如御膳只许从膳房到御前,不可逆传
  • 铜铃名制
    事件名推荐kebab-case写法,如@shang-cai而非@shangCai
  • 八旗分量守则
    复杂数据宜用对象形式传递,保持props结构清晰

    (臣附注:此乃Vue 2写法,若圣上欲用Composition API,臣当另备西洋新法呈览...)