Dart 2.3 - UI를 빌딩에 최적화 됐어요.
원문 : https://medium.com/dartlang/announcing-dart-2-3-optimized-for-building-user-interfaces-e84919ca1dff
새로운 language features
spread 연산자
리스트의 요소들을 다른 리스트 안으로 풀어서 넣어주는 … 연산자 (spread operator)
Widget build(BuildContext context) {
return Column(children: [
Header(),
...buildMainElements(), // spread 연산자
Footer(),
]);
}
List<Widget> buildMainElements() { ... }
collection if
조건에 맞지 않으면 요소가 들어가지 않게 해주는 문법. 단, list 리터럴에서만 사용할 수 있어요!
Widget build(BuildContext context) {
return Column(children: [
Text(mainText),
if (page != pages.last) // collection if
FlatButton(child: Text('Next')),
]);
}
collection for
리스트의 요소들을 다른 리스트 안으로 풀어서 넣되, 들어가는 요소들에 가공을 더해주는 문법. 단, list 리터럴에서만 사용할 수 있어요!
Widget build(BuildContext context) {
return Column(children: [
Text(mainText),
for (var section in sections) // collection for
HeadingAction(section.heading),
]);
}