当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Vue.js inheritAttrs用法及代码示例


类型

interface ComponentOptions {
  inheritAttrs?: boolean // default: true
}

细节

默认情况下,不被识别为 props 的父范围属性绑定将 "fallthrough"。这意味着当我们有一个single-root 组件时,这些绑定将作为普通 HTML 属性应用于子组件的根元素。在创作包装目标元素或另一个组件的组件时,这可能并不总是期望的行为。通过将 inheritAttrs 设置为 false ,可以禁用此默认行为。这些属性可通过 $attrs 实例属性获得,并且可以使用 v-bind 显式绑定到非根元素。

示例

<script>
export default {
  inheritAttrs: false,
  props: ['label', 'value'],
  emits: ['input']
}
</script>

<template>
  <label>
    {{ label }}
    <input
      v-bind="$attrs"
      v-bind:value="value"
      v-on:input="$emit('input', $event.target.value)"
    />
  </label>
</template>

在使用 <script setup> 的组件中声明此选项时,需要单独的 <script> 块:

<script>
export default {
  inheritAttrs: false
}
</script>

<script setup>
defineProps(['label', 'value'])
defineEmits(['input'])
</script>

<template>
  <label>
    {{ label }}
    <input
      v-bind="$attrs"
      v-bind:value="value"
      v-on:input="$emit('input', $event.target.value)"
    />
  </label>
</template>

相关用法


注:本文由纯净天空筛选整理自vuejs.org大神的英文原创作品 inheritAttrs。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。