2

我正在学习 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用它们填充。

  1. 这可能吗?如果是这样,我是“做对了”,还是对此有不同/首选/标准化的方法?
  2. 这是否会引入我应该注意的任何其他/潜在警告(内存泄漏)、性能或安全问题?
  3. 如果我在整个应用程序中采用这种策略,我是否可以假设应用程序下载速度更快(HTML 文本更少),但执行速度更慢(动态 DOM 元素创建)?如果是这样,有没有办法以某种方式实例化我的应用程序需要的所有 DOM 元素(减慢初始下载时间),然后只使某些元素可见,因为我希望呈现不同的视图/屏幕(从而加快执行时间)?
4

1 回答 1

1

你需要一个带有用于 Dart 启动的脚本标签的 HTML 文件。其他任何事情都可以在 Dart 中完成。

于 2013-12-29T12:08:13.260 回答