I think there maybe some kind of bug going on here! On occasion I have seen the NavLink error that the orginal poster mentions. Yes, it looks like maybe I'm missing a "@using Microsoft.AspNetCore.Components.Routing" statement. I do however have that statement included in my "_Import.razor" file. The problem was occuring in my NavMenu.razor component. So I thought maybe those imports don't apply to my NavMenu component. So I added the using statement directly in my NavMenu.razor component. Even with that using statement added directly in my NavMenu component, but I still got the same error. So I thought, could I be spelling the "Microsoft.AspNetCore.Components.Routing" component name wrong, but that wasn't the case. I then went to A NavLink statement in my NavMenu.razor component an pasted the namespace "Microsoft.AspNetCore.Components.Routing" in front of the NavLink tag and this time the error went away. The error also went away for all other Navlink's in the NavMenu.razor component. I then deleted the hard code namespace from the Navlink that I had previously changed. After that, all NavLink tags were still fine! I then deleted the @using statment I had added to my NavMenu.razor component and things were still fine. Please remember that my "Imports.razor" file still has the routing using statement in it.
The above observation is what leads me to believe that there's some kind of bug going on. I'm going to guess that maybe there's something going wrong razor import caching. Again, that's just a guess. I did however find some mention about razor import caching errors at: https://tridion.stackexchange.com/questions/16415/razor-import-caching-problem. It gives a possible explanation to what might be causing this problem.