类型
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>
相关用法
- Vue.js inject()用法及代码示例
- Vue.js inject用法及代码示例
- Vue.js useSSRContext()用法及代码示例
- Vue.js app.directive()用法及代码示例
- Vue.js mergeProps()用法及代码示例
- Vue.js app.config.warnHandler用法及代码示例
- Vue.js pipeToWebWritable()用法及代码示例
- Vue.js app.use()用法及代码示例
- Vue.js v-pre用法及代码示例
- Vue.js h()用法及代码示例
- Vue.js serverPrefetch用法及代码示例
- Vue.js customRef()用法及代码示例
- Vue.js <Transition>用法及代码示例
- Vue.js mixins用法及代码示例
- Vue.js ComponentCustomProps用法及代码示例
- Vue.js reactive()用法及代码示例
- Vue.js ComponentCustomProperties用法及代码示例
- Vue.js app.mount()用法及代码示例
- Vue.js <component>用法及代码示例
- Vue.js createRenderer()用法及代码示例
- Vue.js onMounted()用法及代码示例
- Vue.js createApp()用法及代码示例
- Vue.js app.config.errorHandler用法及代码示例
- Vue.js v-on用法及代码示例
- Vue.js components用法及代码示例
注:本文由纯净天空筛选整理自vuejs.org大神的英文原创作品 inheritAttrs。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。