반응형
프로그래밍 방식으로 생성된 vuejs 구성 요소 인스턴스에 슬롯을 전달하는 방법
내 앱에서 동적 구성 요소 인스턴스를 생성해야 하며, 이 경우 다음 방법을 사용하십시오.
import Button from 'Button.vue'
...
var Ctor = Vue.extend(Button);
var instance = new Ctor({ propsData: {} });
instance.$mount('#el');
이 모든 것이 잘 되네, 나도 소품 전달이 가능해.하지만 이제 나도 그 인스턴스에 슬롯을 넘겨야 해.나는 다음과 같은 성공적이지 못한 것들을 무작위로 시도했다.
var instance = new Ctor({ propsData: {}, slots: { default: someNode }});
나는 모든 곳을 뒤져봤지만 그것이 가능한지 아닌지 전혀 모른다.조언은?
TypeScript 정의 파일을 살펴본 결과Vue.js
Vue 구성 요소 인스턴스에서 문서화되지 않은 함수를 찾았어:$createElement()
내 추측으로는, 그것은 전달된 것과 같은 기능이다.render(createElement)
구성 요소의 기능따라서 다음과 같이 해결할 수 있다.
const Constr = Vue.extend(MyComponent);
const instance = new Constr({
propsData: { someProp: 'My Heading' }
});
// Creating simple slot
const node = instance.$createElement('div', ['Hello']);
instance.$slots.default = [node];
instance.$mount(body);
그러나 이것은 명백히 불법이고 따라서 의심스러운 접근이다.만약 이용 가능한 더 좋은 방법이 있다면 나는 그것에 대답했다고 표시하지 않을 것이다.
슬롯을 조작하여 생성된 인스턴스에 설정할 수 있음$slots
키:
import Button from 'Button.vue'
...
var ButtonConstructor = Vue.extend(Button);
var instance = new ButtonConstructor({ propsData: {} });
// SET SLOT
instance.$slots.default = [ 'Hello' ];
instance.$mount('#el');
반응형
'programing' 카테고리의 다른 글
상속과 구성의 차이 (0) | 2022.04.27 |
---|---|
C의 함수에서 여러 값을 반환하려면 어떻게 해야 하는가? (0) | 2022.04.27 |
Vue 3 구성 요소 내부의 Vuex 4 상태 데이터를 다른 디스패치를 위한 페이로드로 사용하는 방법 (0) | 2022.04.27 |
계산된 속성을 사용할 때 $store 속성이 반응하지 않음(Vuex) (0) | 2022.04.26 |
Java 8 어레이에서 스트림 및 작동 (0) | 2022.04.26 |