Skip to content

Not working as expected, cause too much render on the component which suscribe #4

@julienGrd

Description

@julienGrd

Hi @mikoskinen and thanks for your work !

However i see a huge problem in your library.
Indeed i faced a performance issue with my app, and i see some of my components are definitively render too much (dotnet/aspnetcore#14684)
i debug this and i see each time one of the event aggregator (whatever the parameters) publish, all of the components wich suscribe (whatever the parameters) are re-loaded (i see them with put some trace on the ShouldRender when the value is true, when i traced back the call stach i arrive on the publish of components).

I precise i see this behavior is client-side (web assembly)

so if you have a component C1 wich publish the a message of type T1 and and component C2 which suscribe of message of type T2, C2 is reloaded when C1 publish, which make no sense, normally the type is used to isolate the different case.

In my case, the components was reloaded 8 time instead of 1. I don't take time to debug your code so i don't know what is causing this issue. However, i see you try to called automatically the StateAsChanged in your code, i think it's a bad idea, In my case sometime i don't want to relad my components (some are very huge) and can be a performance problem event without this bug. at least provide an option to disable it (or better, as a parameter of the publish).

Maybe i can make some PR if you need help.

Good luck

Julien

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions