Vue $props 对象


示例

使用$props对象显示收到的道具。

<template>
  <div>
    <h3>Received Props</h3>
    <p>This is the $props object:</p>
    <pre>{{ this.$props }}</pre>
  </div>
</template>
运行示例 »

请参阅下面的更多示例。


定义和用法

这个$propsobject 表示组件中声明的 props 以及当前值。

Vue 中的 Props 是一种将值作为属性传递给子组件的方法。请参阅 Vue 教程页面了解 Pros

这个$propsobject 可用于将 props 进一步向下传递到下一个子组件(请参见下面的示例 1),或者用于基于 prop 设置计算属性(下面的示例 2)。

这个$props对象是只读的。


更多示例

示例1

使用$props对象将 props 传递给下一个子组件。

<template>
  <div>
    <h3>InfoBox.vue</h3>
    <p>This is the $props object that is received from App.vue and passed down to the next child component:</p>
    <pre>{{ this.$props }}</pre>
    <grand-child v-bind="$props" />
  </div>
</template>

<script>
export default {
  props: [
    'bagOwner',
    'bagWeight'
  ]
}
</script>

<style scoped>
div {
  border: solid black 1px;
  padding: 10px;
  margin-top: 20px;
  max-width: 370px;
}
</style>
运行示例 »

示例2

使用$props计算属性中的对象,用于根据袋子的重量创建反馈消息。

<template>
  <div>
    <h3>InfoBox.vue</h3>
    <p>The $props object is used in a computed value to create a message based on the weight of the bag:</p>
    <span>{{ this.bagWeightStatus }}</span>
  </div>
</template>

<script>
export default {
  props: [
    'bagWeight'
  ],
  computed: {
    bagWeightStatus() {
      if(this.$props.bagWeight>10) {
        return 'Puh, this bag is heavy!'
      }
      else {
        return 'This bag is not so heavy.'
      }
    }
  }
}
</script>

<style scoped>
div {
  border: solid black 1px;
  padding: 10px;
  max-width: 350px;
  margin-top: 20px;
}
span {
  background-color: lightgreen;
  padding: 5px 10px;
  font-weight: bold;
}
</style>
运行示例 »

相关页面

Vue教程:Vue 组件

Vue教程:Vue 计算属性

Vue教程:Vue 道具

Vue教程:Vue v-bind 指令