• 赚钱入口【需求资源】限时招募流量主、渠道主,站长合作;【合作模式】CPS长期分成,一次推广永久有收益。主动打款,不扣量;

Widget build 优化

Flutter cps12345 1年前 (2020-08-20) 292次浏览 0个评论

优化 Widget build

有没有方法让Widget在build的时候,让 child 不重新 build 勒?

关键字 const
@override
Widget build(BuildContext context) {
  return const DecoratedBox(
    decoration: BoxDecoration(),
    child: Text("Hello World"),
  );
}

上面使用了关键字 const 标记的 DecoratedBox 即使 build 执行千百次也依然会保持不变。

关键字 final
@override
Widget build(BuildContext context) {
  final subtree = MyWidget(
    child: Text("Hello World")
  );

  return StreamBuilder<String>(
    stream: stream,
    initialData: "Foo",
    builder: (context, snapshot) {
      return Column(
        children: <Widget>[
          Text(snapshot.data),
          subtree,
        ],
      );
    },
  );
}

当 StreamBuilder 通知新值改变的时候,subtree 不会执行 build. 这种方式在 AnimatedBuilder 中使用得比较多

 

喜欢 (0)

您必须 登录 才能发表评论!