حدد اسم الفتحة داخل وظيفة التجسيد كما يلي:
return createElement(rootcmp, { default: [ createElement(childCmp) ], temp: [ createElement(childCmp2) ] } );
من داخل وظيفة التقديم ، حدد اسم الفتحة مثل "افتراضي" ، "مؤقت" عند إنشاء عناصر فرعية.
return createElement(rootcmp, { default: [ createElement(childCmp) ], temp: [ createElement(childCmp2) ] } );
الكود الكامل أدناه:
@Component({
props:[]
})
export class TestComponent extends Widget{
items:any[];
render(createElement:any){
const rootcmp = {
template:`<div>
Temp:<slot name="temp"></slot>
Default:<slot></slot>
</div>`
, data:()=>{
return {};
}
}
const childcmp = {
template:'<div slot="default">This is child</div>'
, data:()=>{
return {};
}
}
const childcmp2 = {
template:'<div slot="temp">This is child</div>'
, data:()=>{
return {};
}
}
return createElement(rootcmp
, { default: [ createElement(childcmp) ], temp:[ createElement(childcmp2) ]);
}
}
سلوك متوقع:
<div>
Temp:<div>This is child</div>
Default:<div>This is child</div>
</div>
استخدم createElement(childcmp, { slot: 'temp' })
.
@ yyx990803 هل هناك سبب تقني لضرورة المضي قدمًا كما هو؟ هذه الطريقة غير عملية للغاية عند التعامل مع العقد التي تم إنشاؤها بشكل متكرر في دفعة كبيرة ، وأتساءل عما إذا كان هناك أي سبب وجيه لعدم قدرتنا على القيام بعمل أفضل.
في الواقع ، هذا createElement(childcmp, { slot: 'temp' })
ليس له أي تأثير على الفتحة.
إنشاء تقرير خطأ: https://github.com/vuejs/vue/issues/11519
التعليق الأكثر فائدة
استخدم
createElement(childcmp, { slot: 'temp' })
.