nil
성능에 미치는 영향이 최소화된, 아무것도 보여주지 않으려 할 때 위젯 트리에 추가할 수 있는 간단한 위젯입니다.
성능에 미치는 영향이 최소한인 간단한 Flutter 위젯으로, 아무것도 보여주고 싶지 않을 때 위젯 트리에 추가할 수 있습니다.
{"sdk":"flutter"}{"sdk":"flutter"}아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
A simple widget to add in the widget tree when you want to show nothing, with minimal impact on performance.
Sometimes, according to a condition, we want to display nothing. Usually when we can't return null, we would return something like const SizedBox() for example.
This is good, but it has some performance impacts since SizedBox creates a RenderObject. The RenderObject lives in the render tree and some computations are performed on it, even if it paints nothing on the screen.
We can do better, we can have a widget which does not create a RenderObject, while being still valid. The Nil widget is the minimal implementation for this use case. It only creates an Element and does nothing while it's building. Because the optimal way to use it, is to call const Nil(), it also comes with a nil constant that you can use everywhere (which is a const Nil()).
import 'package:nil/nil.dart';
return Builder(
builder: (_) {
if (condition) {
return const MyWidget();
} else {
return nil;
}
},
);
This widget is not intended to be used in widgets accepting multiple children (e.g. Rows, Columns, etc.). The best option is to not add a widget in the list if you don't want it to be displayed. Moreover using a Nil widget in such a case, can have unexpected results.
I'm working on my packages on my free-time, but I don't have as much time as I would. If this package or any other package I created is helping you, please consider to sponsor me so that I can take time to read the issues, fix bugs, merge pull requests and add features to these packages.
Feel free to contribute to this project.
If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a feature, please send a pull request.