Я хочу сделать разделение кода вручную, используя preact.Preact уже разбивает код на маршруты, но я хочу сделать это сам.
Мой пример использования - создание инструмента, в котором пользователь может добавлять виджеты на панель инструментов.На главной странице я хочу включить только код для виджетов, которые настроил пользователь, а не те, которые пользователь не использовал.
Поэтому я не хочу, чтобы код для всех виджетов, связанных в комплекте,bundle.js, но запрашивайте его лениво при необходимости при рендеринге списка виджетов.
Я попытался использовать синтаксис async!
, который я видел в некоторых старых коммитах для базовой платформы, но это было сделаноне работает.
Упрощенный пример моего кода
Данные конфигурации
[{ "type": "notes", "title": "Widget 1}, { "type": "todo", "title": "Widget 2"}]
Функция рендеринга списка
const Grid = ({ widgets }) => (
<ul>
{widgets.map((widget) => <li key={widget.title}><Widget widget={widget} /></li>)}
</ul>
);
Компонент виджета
Здесь у меня есть отображение от типа к компоненту:
import notes from widgets/notes;
import todo from widgets/todo;
class Widget extends Component {
widgetMap(widget) {
if (widget.type === 'notes') {
return notes;
}
if (widget.type === 'todo') {
return todo;
}
}
render ({ widget }) {
const widgetComponent = this.widgetMap(map);
return (
<div>
<h1>{widget.title}</h1>
<widgetComponent />
</div>
);
}
}