Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在flatter中传递对象或将对象的单个属性传递给小部件更好吗_Flutter_Dart - Fatal编程技术网

Flutter 在flatter中传递对象或将对象的单个属性传递给小部件更好吗

Flutter 在flatter中传递对象或将对象的单个属性传递给小部件更好吗,flutter,dart,Flutter,Dart,例如,如果我们有一个商店应用程序,我们使用 class Product { final String title; final String description; final double price; Product({ @required this.title, @required this.description, @required this.price, }); } 我们有一个ProductCard小部件,它使用产品的title和pr

例如,如果我们有一个商店应用程序,我们使用

class Product {
  final String title;
  final String description;
  final double price;

  Product({
    @required this.title,
    @required this.description,
    @required this.price,
  });
}
我们有一个
ProductCard
小部件,它使用产品的
title
price

所以如果我们有一个产品对象,比如

Product product1 = Product(
  title: 'bike',
  description: 'black mountain bike',
  price: 2000.0,
);
那么,像这样将产品对象传递给小部件是否更好:

ProductCard(product: product1)
ProductCard(title: product1.title, price: product1.price)
或者像这样传递我们需要的属性:

ProductCard(product: product1)
ProductCard(title: product1.title, price: product1.price)

这取决于你要经过的物体。在这种情况下,我认为传递对象更有意义,因为如果你最终传递了很多单独的属性,它会变得很混乱,如果你要在某个时候更改数据结构或小部件,你可能需要重做它。您只传递对对象的引用,因此传递整个对象并不会降低效率


如果对象包含其他对象,并且没有有限的大小(如列表或地图),我认为将属性直接传递给小部件更有意义

如果您想发送对象的整个数据,那么最好将对象作为一个整体传递,这是一种更好的方法,如果您只想传递对象的选择性元素,则单独传递它。不过,我怀疑在相对较小的应用程序中是否会有任何性能差异。