Предположим, у меня есть постоянно растущий набор различных шаблонов, которые можно использовать с реагировать. Каждый шаблон extends React.Component
визуализирует причудливую рамку вокруг своих дочерних элементов.
Я ожидаю генерировать такие шаблоны (с кэшированием и т. Д.) На лету из некоторых данных, известных только во время выполнения.
Во время выполнения я могу вычислить имя модуля, содержащего шаблон. Я могу сопоставить URL-адрес с кодом сервера, чтобы предоставить источник JavaScript, и ожидать, что браузер сможет его запустить.
Я полагаю, что я бы изолировал этот кусок кода простым методом, похожим на загрузку * .DLL по имени и вызов его экспортированного символа. Мое предположение ниже не работает.
private async templateLoader():Promise<React.ComponentType>{
const templateModuleName:string = this.props.api.getTemplateName(this.props.user);
return (await import(templateModuleName)) as React.ComponentType;
}
Я могу представить JavaScript, используя require.js, вот так
var propsMappedFromStore=this.props;
//...
require(["api","user"],function(api,user){
var templateModuleName = api.getTemplateName(user);
require([templateModuleName],function(tt){
propsMappedFromStore.updateTemplate(tt);
})
})
Но возможно ли это с Typescript и Webpack?
Как мне потребовать / импортировать модуль, идентифицируемый выражением?