Vue.js:以编程方式实例化功能组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue.js:以编程方式实例化功能组件相关的知识,希望对你有一定的参考价值。

当我使用此代码实例化功能组件时

const Component_Constructor = Vue.extend(Component);
let component_instance = new Component_Constructor();
component_instance.$mount();

该组件在context函数上得到未定义的render参数

如何将参数(道具,插槽,儿童......)传递给组件?

答案

到目前为止我发现的唯一解决方法是将functional组件包装到另一个正常组件中,如下所示:

let AComponent = {
    functional: true,
    name: 'a-component',
    render(h, context) {
        return h('div', context.children[0].text);
    }
};
let template = `<a-component>test content</a-component>`;
let WrapperComponent = Vue.extend({
    components: {AComponent},
    template,
});
let componentInstance = new WrapperComponent().$mount();
let content = componentInstance.$el;

以上是关于Vue.js:以编程方式实例化功能组件的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式创建 Vue.js 插槽?

vue-组件

Vue组件之全局组件与局部组件

Vue组件之全局组件与局部组件

Vue.js 和 vue-phone-number-input 包组件:以编程方式设置国家代码和电话号码

以编程方式将委托实例化到组件