jesse1983 / marko-router5

Flexible and powerful routing for MarkoJS
https://jesse1983.github.io/marko-router5
MIT License
29 stars 4 forks source link

Somehow the router tag interferes with Marko's rerendering… #4

Closed hedefalk closed 6 years ago

hedefalk commented 6 years ago

Ok, this is gonna be a long one:

I've used this router together with Marko 4.12.4 and it seemed to work fine in my main project. However, I noticed a really weird behaviour that everything was rerendered even for small state changes of the outmost component. This went away if I removed the use of include I had for a footer and header. I thought this was something weird with Marko, so I tried to reproduce this with a minimal project but couldn't, it worked as expected.

I then tried adding marko-router5 and with this last commit the event propagation dies in this example:

https://github.com/hedefalk/marko-include-issue/commit/b57bd1d97b3626efef1ec56f28efaf6b3d1b4a2a

The errors I'm seeing in my real project is somewhat different though, but might have similar cause I'm hoping. There events propagate but everything rerenders, not just the things that should. That is if I use a include for the header/footer chrome just like the example project.

Also, when upgrading to Marko 4.13.4-1 I get runtime issues because they really seem to state that there should be an element in the markup.

image

This I can't seem to recreate on the test project however, but it is happening on the router component. Maybe this is all related, maybe there are many different issues.

Sorry to report so many vague issues, but I think at least the github repo there can reliably recreate an issue that the counter just stops working if it's rendered via the router.

hedefalk commented 6 years ago

Close as #5 supersedes