控制透传路径
vue中的透传会将父组件传给子组件的$attrs放到子组件的根元素上,我们常用这个特性来传递class、style,以指定子组件的长宽。
但在写诸如对话框这样的组件时,对话框组件的根组件是那一层黑色的蒙版。父组件并不希望指定蒙版的长宽,而是希望指定对话框的长宽,这时候我们就需要控制透传的路径。具体做法就是在子组件上使用inheritAttrs:false
关闭默认透传,并且将$attrs传给对话框节点:
<template>
<div class="mask">
<div class="dialog" v-bind="$attrs">
对话框
</div>
</div>
</template>
<script>
export default {
inheritAttrs: false
}
</script>