I dont think there is any specific "ways" to do it without DI. You just have to create a new instance of your ViewModel manually and handle its lifecycles etc.
@Ian Lake Thanks for the information. I have visited the docs and that states the same thing. I thought only way to scope a ViewModel to a navigation destination is using a DI solution. But that's precisely not the case. I am pretty sure I have read these docs page before but somehow overlooked on these information.