在 mat 表中:新的 MatTableDataSource VS ChangeDetectorRef ,为了刷新源数据,使用哪个更好?

当数据发生变化时,我们可以通过dataSource = new MatTableDataSource<PeriodicElement>([])更新表格,然后将数据分配给datasource (this.datasource = data)会自动更新表格。

我们也可以使用 this.changeDetectorRefs.detectChanges()。 使用哪个更好?

我认为它会像我下面提到的那样工作,但我怀疑: 假设我们使用这两种方法:

方法 1) new MatTableDataSource

方法 2) changeDetectorRefs

所以

init data:

     data=[
    {id=1,price = 8,buy = 2},{id=2,price = 10,buy = 5},]

and new data: 

    data=[
    {id=1,price = 20,// price has changed (update)
    ]

那么:

如果我们使用方法1:mat表中的整行都会受到影响。

如果我们使用方法2:只会改变id为2的第二行,表格中的第一行不会改变。

是吗? 我想知道哪个更好用? (如果它像我解释的那样,那么方法 2 将是首选)

glueyou 回答:在 mat 表中:新的 MatTableDataSource VS ChangeDetectorRef ,为了刷新源数据,使用哪个更好?

基于this ChangeDetectorRef 是比再次设置数据源更有效的方式,因为它检测并更新唯一已更改的数据而不是所有数据。

因此,如果您已分页并且只有少数项目(例如 10 或 20 条记录),则它们之间没有太大区别。但是,如果您的网格中一次有更多数据,则第二种方法最适合您

本文链接:https://www.f2er.com/5784.html

大家都在问