我正在学习 Dart,突然顿悟(或者可能是顿悟):
我可以编写一个 Dart 网络应用程序,其中“视图”在 Dart 中 100% 完成吗?
我在说:绝对没有(无/零/nadda)HTML文件(.html)。100% 飞镖代码。就像是:
class SigninView {
LabelElement signinLabel;
InputElement emailTextField;
InputElement passwordTextField;
ButtonElement signinButton;
// constructors, getters, setters, etc.
// Perhaps called from inside constructor...
void initUI() {
signinLabel = new LabelElement();
signinLabel.innerHTML = "<span class=\"blah\">Please sign in</span>";
emailTextField = new InputElement();
emailTextField.innerHTML = "<input type=\"text\" name=\"fizz\" placeholder=\"Email\"/>";
// ...etc.
// htmlFactory would be something I'd need to write myself (?)
String html = htmlFactory.newHTML(signinLabel, emailTextField, ...);
querySelector("#someDivTag").innerHTML = html;
}
}
理论上(也就是我对上面代码的意图),一旦SigninView
创建,它就会初始化一堆 DOM 元素并someDivTag
用它们填充。
- 这可能吗?如果是这样,我是“做对了”,还是对此有不同/首选/标准化的方法?
- 这是否会引入我应该注意的任何其他/潜在警告(内存泄漏)、性能或安全问题?
- 如果我在整个应用程序中采用这种策略,我是否可以假设应用程序下载速度更快(HTML 文本更少),但执行速度更慢(动态 DOM 元素创建)?如果是这样,有没有办法以某种方式实例化我的应用程序需要的所有 DOM 元素(减慢初始下载时间),然后只使某些元素可见,因为我希望呈现不同的视图/屏幕(从而加快执行时间)?