在许多示例中,我看到的代码如下:
InputElement task;
void main() {
task = querySelector('#task');
task.text = "blabla";
}
这样做似乎也有同样的效果。
InputElement task = querySelector('#task');
void main() {
task.text = "blabla";
}
我更喜欢第二种方式,但我不确定是否有什么不同,或者第二种方法可能会破坏一些东西。
是的,您可以在顶层调用querySelector。
但是,请注意求值顺序,因为必须首先初始化DOM。通常,dart脚本标记被放置在主体的末尾,因此main在创建DOM之后运行。
对于顶级变量,第一次使用该变量时会计算右侧的表达式。
考虑以下示例,该示例打印1、2、3。
int i = foo();
foo() {
print('#2');
return 42;
}
main() {
print('#1');
int k = i; // i is accessed for the first time, so foo() is called.
print('#3');
}
由于在DOM准备好之前不会执行Dart代码,所以这两种方法都可以很好地工作,而且都不会中断。