【发布时间】:2019-05-25 06:19:46
【问题描述】:
我想使用 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>
);
}
}
【问题讨论】:
标签: javascript code-splitting preact