-
Notifications
You must be signed in to change notification settings - Fork 6.8k
bug(mat-sort-header): performance & change detection issue with the whole table #19441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Here is the stackblitz example as a separate site: https://oemlkyybkmp.angular.stackblitz.io/ If I enable paint flashing, I do not see the entire table flashing green when hovering over the sort headers. Can you confirm that you see the same thing? |
Unfortunately I can't check it, because it does not load in... "Starting dev server" |
Isn't this the same as the mat-tooltip issue, where it was ultimately the cdk-overlay that's being re-drawn but because it covers the whole table it appears as if it's the table itself? |
I don't see any paint flashing issues either and as mentioned above, the multiple change detections are because we manage the arrow animations inside the |
here is the reproductio nexample of this bug: |
Just experienced the same and saw this github issue. This also breaks animations of e.g. charts which destroys the look and feel of my page. A solution is really much appreciated. Ofcourse I know you guys have a lot to do. |
For a long time the sort header's animation was set up by rendering out 4 `div` elements and then arranging them to look like an arrow. This is somewhat complicated to maintain, difficult to customize, in some cases it leads to weird visual bugs and ends up triggering excessive change detections. On top of that, because it depends on `@angular/animations`, it is prone to memory leaks (see angular/angular#54149). These changes aim to simplify the component and make it more robust by using an `svg` icon and dealing with the animations. Fixes angular#9758. Fixes angular#9844. Fixes angular#10088. Fixes angular#15451. Fixes angular#19441.
For a long time the sort header's animation was set up by rendering out 4 `div` elements and then arranging them to look like an arrow. This is somewhat complicated to maintain, difficult to customize, in some cases it leads to weird visual bugs and ends up triggering excessive change detections. On top of that, because it depends on `@angular/animations`, it is prone to memory leaks (see angular/angular#54149). These changes aim to simplify the component and make it more robust by using an `svg` icon and dealing with the animations. Fixes angular#9758. Fixes angular#9844. Fixes angular#10088. Fixes angular#15451. Fixes angular#19441. Fixes angular#10242.
For a long time the sort header's animation was set up by rendering out 4 `div` elements and then arranging them to look like an arrow. This is somewhat complicated to maintain, difficult to customize, in some cases it leads to weird visual bugs and ends up triggering excessive change detections. On top of that, because it depends on `@angular/animations`, it is prone to memory leaks (see angular/angular#54149). These changes aim to simplify the component and make it more robust by using an `svg` icon and dealing with the animations. Fixes #9758. Fixes #9844. Fixes #10088. Fixes #15451. Fixes #19441. Fixes #10242. (cherry picked from commit a08eeeb)
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Uh oh!
There was an error while loading. Please reload this page.
Reproduction
With Stackblitz I can't reproduce it as dev tools is not working there.
https://ibb.co/XXjZw1r
Steps to reproduce:
Expected Behavior
If I have a complex page with Material table, I would not expect performance issues because of re-rendering the whole table on hovering mat-sort-header. Table's data definetely should not connect to mat-sort-header on hover event by default.
Actual Behavior
Causes performance issues.
https://ibb.co/XXjZw1r
Environment
The text was updated successfully, but these errors were encountered: