Vue $props 对象

实例

使用 $props 对象来显示收到的 prop。

  1. <template>
  2. <div>
  3. <h3>Received Props</h3>
  4. <p>This is the $props object:</p>
  5. <pre>{{ this.$props }}</pre>
  6. </div>
  7. </template>

定义与用法

$props 对象用当前值表示组件中声明的 prop。

Vue 中的 prop 是将值作为属性传递给子组件的一种方式。

$props 对象可以用于例如将 prop 进一步传递到下一个子组件(参见下面的实例1),或者例如基于 prop 设置计算属性(下面的实例2)。

$props 对象是只读的。


更多实例

实例 1

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

  1. <template>
  2. <div>
  3. <h3>InfoBox.vue</h3>
  4. <p>This is the $props object that is received from App.vue and passed down to the next child component:</p>
  5. <pre>{{ this.$props }}</pre>
  6. <grand-child v-bind="$props" />
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. props: [
  12. 'bagOwner',
  13. 'bagWeight'
  14. ]
  15. }
  16. </script>
  17. <style scoped>
  18. div {
  19. border: solid black 1px;
  20. padding: 10px;
  21. margin-top: 20px;
  22. max-width: 370px;
  23. }
  24. </style>
实例 2

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

  1. <template>
  2. <div>
  3. <h3>InfoBox.vue</h3>
  4. <p>The $props object is used in a computed value to create a message based on the weight of the bag:</p>
  5. <span>{{ this.bagWeightStatus }}</span>
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. props: [
  11. 'bagWeight'
  12. ],
  13. computed: {
  14. bagWeightStatus() {
  15. if(this.$props.bagWeight>10) {
  16. return 'Puh, this bag is heavy!'
  17. }
  18. else {
  19. return 'This bag is not so heavy.'
  20. }
  21. }
  22. }
  23. }
  24. </script>
  25. <style scoped>
  26. div {
  27. border: solid black 1px;
  28. padding: 10px;
  29. max-width: 350px;
  30. margin-top: 20px;
  31. }
  32. span {
  33. background-color: lightgreen;
  34. padding: 5px 10px;
  35. font-weight: bold;
  36. }
  37. </style>

分类导航