new Vue.extend 创建的实例如何传递 $attrs 属性?

请问使用 Vue.extend 创建出来的实例, 如何传递 attrs 属性呢?

调用代码:

const VueConstructor = Vue.extend(componentA);
const instance = new VueConstructor({
  propsData: {
    placeholder: "xxx",
    aaa: "xxxx",
  },
});
instance.$mount();
document.querySelector("#test").appendChild(instance.$el);

componentA 组件代码:

props: ['placeholder'],
created() {
  console.log("this.$attrs", this.$attrs); // 不能看到 placeholder 和 aaa
  console.log("this.$props", this.$props); // 能看到 placeholder, 不能看到 aaa
}

如何才能使用 Vue.extend 创建的实例达到下面这种效果呢? 或者有替代方案吗?

<componentA placeholder="xxx" aaa="xxx"/>
阅读 2.8k
2 个回答
Vue.extend({
  template: '<componentA :placeholder="placeholder" />',
  data() {
    return {
      placeholder: "xxxx"
    }
  }
})
var instance = new VueConstructor({
      propsData: {
        placeholder: "xxx",
        aaa: "xxxx",
      },
      _parentVnode: {
          data: {
              attrs: {
                  bbb: 'ccccc'
              }
          }
      }
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题