关于$attrs的继承

按照vue文档里的代码敲出来的效果不一致;

Vue.component('base-input', {
  inheritAttrs: false,
  props: ['label', 'value'],
  template: `
    <label>
      {{ label }}
      <input
        v-bind="$attrs"
        v-bind:value="value"
        v-on:input="$emit('input', $event.target.value)"
      >
    </label>
  `
})
<base-input
  v-model="username"
  class="username-input"
  placeholder="Enter your username"
></base-input>

为什么class="username-input" 这个class会落在 label标签上 不是应该落在input上吗 求教了

阅读 4.7k
2 个回答

看看官方文档vm.$attrs

vm.$attrs包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (classstyle 除外)。

注意括号里面加粗的内容,$attrs并不包含class

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题