반응형
TypeScript를 사용하여 Vue 컴포넌트를 프로그래밍 방식으로 생성합니다.
프로그래밍 방식으로 vue 구성 요소를 생성하는 것에 대한 몇 가지 답변을 찾았지만 TypeScript를 사용한 답변은 없습니다.어플리케이션의 백엔드에 mongodb가 있어 데이터를 저장하고 Spring Boot을 사용한API 레이어 빌드가 있습니다.내 컴포넌트 중 하나는 백엔드에서 데이터를 가져오기 위한 API 호출이 있으며 응답에서 컴포넌트를 만들고 싶습니다.
@Component
export default class LayoutEditor extends Vue {
public elements: Element[];
@Prop({type: String, required: true})
private id: string;
public created() {
axios.get('template/layout/' + this.id).then((response) => {
this.initElements(response.data.elements);
});
}
private initElements(elements: any[]) {
this.elements = [];
elements.forEach((element: any) => {
const elemInst: Element = Element.newInstance(element);
this.elements.push(elemInst);
});
}
}
템플릿에서 다음을 수행합니다.<component v-for="(element) in elements" :is="element"></component>
컴파일되어 런타임 오류를 발생시키지 않지만 컴포넌트는 렌더링되지 않습니다.
@Component
export default class Element extends Vue {
public static newInstance(obj: any) {
const element = new Element();
element.id = ob.id;
element.data = obj.data;
return element;
}
public id: string;
public data: any;
}
다음 패턴도 사용하려고 했습니다.
const ElementClass = Vue.extend(Element);
const element = new ElementClass();
단, 이 경우 이 설정을 할 수 없습니다.id
그리고.data
타입은 Element이기 때문에ExtendedVue
.
그렇다면 일부 백엔드 데이터를 기반으로 이러한 동적 구성요소를 실현하는 적절한 방법은 무엇일까요?
언급URL : https://stackoverflow.com/questions/60502948/programmatically-create-vue-components-with-typescript
반응형
'programing' 카테고리의 다른 글
슈퍼 하이 퍼포먼스 C/C++ 해시 맵(표, 사전) (0) | 2022.07.18 |
---|---|
instance of와 Class.isAssignableFrom(...)의 차이점은 무엇입니까? (0) | 2022.07.17 |
v-model이 jQuery 트리거 이벤트의 변경 사항을 감지하지 못함 (0) | 2022.07.17 |
유형 'Vue'에 속성 'x'가 없습니다. (0) | 2022.07.17 |
자바에서 확장자를 사용하지 않고 파일 이름을 가져오려면 어떻게 해야 합니까? (0) | 2022.07.17 |