Я изучаю Dart, и меня внезапно осенило (или возможно, прозрение):
Могу ли я написать веб-приложение Dart, где «просмотр» выполняется на 100% в Dart?
Я говорю: абсолютно никаких (нет/ноль/надда) файлов 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, которые потребуются моему приложению заранее (замедляя начальное время загрузки), а затем сделать видимыми только определенные элементы, поскольку я хочу отображать разные представления/экраны (таким образом ускоряя время выполнения )?