如何提高颤振性能?

时间:2019-05-23 13:30:24

标签: dart flutter

如何提高颤振性能并加快我们的应用程序。 当我在处理大型应用程序时,我担心性能问题,因为我需要一个超级快速的应用程序。

在这里,我有很多项目,例如聊天应用程序,下面提到的我担心的是: 1:我需要平滑滚动3000多个项目 2:我需要在聊天过程中更新特定项目,例如:已看到,已发送,已发送或已删除。 3:和导航

在本机反应中,有很多方法类似于使用PureComponentshouldComponentUpdate(nextProps, nextState)函数来减少渲染。

例如,在react-native中,我们可以将一个大列表Component拆分为项目的子Component,然后可以使用shouldComponentUpdate(nextProps, nextState)并防止任何渲染不依赖于当前Item。

此方法可帮助我们呈现需要更新的项目。 还有很多其他方法可以用来加快应用程序的速度。

尽管我在react-native中遇到的一个大问题是,如果我们快速滚动300多个项目,列表项就会出现空白。

所以我的问题是如何在FLUTTER中找到相同的提示,我的意思是像上面在flutter中提到的那样,是否有react-native的提示/技巧?如果是,请通过一个简单的例子帮助我。 谢谢你,谢谢!

1 个答案:

答案 0 :(得分:-1)

  

在这里,我有一个很大的项目列表,例如聊天应用程序,下面有一些我担心的问题:1:我需要流畅地滚动超过3000个项目2:我需要在聊天过程中更新特定项目,例如:看到,发送,发送或删除。 3:和导航

使用ListView.builder()小部件创建平滑的可滚动列表,而没有任何长度,也没有任何性能问题。

它的功能基本上与RecyclerView(Android原生)相对应。 屏幕上不可见的项目不会被渲染,因此列表中总共存在多少项目几乎没有关系。

Flutter会为您处理所有这些次要问题,以便您可以专注于应用程序的其他重要方面。 Flutter和RN在某种程度上相似,但并不相同。

工作示例:

import 'package:flutter/material.dart';

List<String> litems = ["1","2","Third","4"];

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext ctxt) {
    return new MaterialApp(
      home: new ListDisplay(),
    );
  }
}
class ListDisplay extends StatelessWidget {
  @override
  Widget build (BuildContext ctxt) {
    return new Scaffold(
      appBar: new AppBar(title: new Text("Dynamic Demo"),),
      body:  new ListView.builder(
                   itemCount: litems.length,
                   itemBuilder: (BuildContext ctxt, int index) {
                     return new Text(litems[index]);
    }
  )
      ),
    );
  }
}

如果仍然遇到相同的问题,请尝试在release mode中运行该应用程序。对于上面的示例,那肯定可以解决您的问题。

如果您想了解更多有关提高应用程序整体性能的提示,请访问以下链接,

https://flutter.dev/docs/testing/best-practices

https://medium.com/flutter-community/improve-your-flutter-app-performance-split-your-widgets-935f97e93f7d

要以发布模式运行应用,请在应用程序的终端中执行flutter run --release,以以发布模式运行应用。