在玩过 AMD/RequireJS 之后,我想知道加载 UI 模块(包括模板和 CSS)是否是个好主意,这样它们就完全独立于网页。
听起来不错,但我还没有看到这在野外实现,所以可能存在陷阱。
考虑一些具有以下结构的 UI 模块:
myWidget
|--img
|--main.js
|--styles.css
+--template.tpl
所有东西都在一个文件夹中。看起来很不错。
main.js 中的模块看起来像这样:
define(["TemplateEngine", "text!myWidget/template.tpl"], function(TemplateEngine, template) {
// Load CSS (Pseudo Code)
var cssUrl = "myWidget/styles.css";
appendToHead(cssUrl);
return function() {
return {
render: function(data) {
return TemplateEngine.toHtml(template, data);
}
}
}
});
现在的问题是:
- 我错过了什么吗?
- 是否有任何插件/概念如何以“标准”方式实现这一目标?
- RequireJS 优化器是否能够在这里处理 CSS 部分,比如像处理 JS 部分一样连接/缩小样式表?
- 对此有何看法?是好是坏?