Vue 'props' 选项

实例

使用 props 选项为组件创建 prop。

  1. export default {
  2. props: [
  3. 'foodName',
  4. 'foodDesc'
  5. ]
  6. };

定义与用法

props 选项是一个数组(简单形式)或一个对象(完整形式),其中包含所有 prop。

props 选项以数组的形式给出时(简单的形式,请参阅上面的示例),数组仅由字符串形式的 prop 名称组成。

props 选项作为一个对象(完整形式,请参阅下面的示例)时,除了 prop 名称之外,还可以定义几个选项:

选项描述
type定义 prop 数据类型可能的类型:字符串、数字、布尔值、数组、对象、日期、函数或符号如果实际提供的道具与定义的 prop 类型不同,Vue 将生成警告。
default定义默认 prop 值如果父组件没有提供特定的 prop,则将使用默认值。
required定义是否需要 prop 在开发模式下运行 Vue 应用程序时,如果没有提供所需的 prop,Vue 将向控制台生成警告。
validator定义一个自定义验证器函数该函数将 prop 值作为参数,我们可以为 prop 的有效与否编写自己的规则。返回 false 将在开发模式中生成警告。

更多实例

实例

将 prop 定义为具有选项的对象。

FoodItem.vue:

  1. <template>
  2. <div>
  3. <h2>{{ foodName }}</h2>
  4. <p>{{ foodDesc }}</p>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. props: {
  10. foodName: {
  11. type: String,
  12. required: true
  13. },
  14. foodDesc: {
  15. type: String,
  16. required: false,
  17. default: 'This is the food description...'
  18. }
  19. }
  20. };
  21. </script>

App.vue:

  1. <template>
  2. <h1>Food</h1>
  3. <p>Food description is not provided for 'Pizza' and 'Rice', so the default description is used.</p>
  4. <div id="wrapper">
  5. <food-item
  6. food-name="Apples"
  7. food-desc="Apples are a type of fruit that grow on trees."/>
  8. <food-item
  9. food-name="Pizza"/>
  10. <food-item
  11. food-name="Rice"/>
  12. </div>
  13. </template>
  14. <style>
  15. #wrapper {
  16. display: flex;
  17. flex-wrap: wrap;
  18. }
  19. #wrapper > div {
  20. border: dashed black 1px;
  21. flex-basis: 120px;
  22. margin: 10px;
  23. padding: 10px;
  24. background-color: lightgreen;
  25. }
  26. </style>

关联页面

Vue 教程: Vue Props

Vue 教程: Vue $emit() 方法

Vue 参考引用: Vue $props 对象

分类导航