In my opinion, it is important to maintain isolation between the router and view in data-driven programming paradigm. They should only communicate with each other through model changes that they both subscribe to.
However, I have noticed that different online tutorials approach this issue in various ways. Some instantiate a view inside the router's initialize method, allowing the router to access the view. Others pass the router to the view so that it can listen for changes on the router's route events.
I personally do not believe either of these approaches is correct as they violate the separation of concerns principle. As a newcomer to Backbone, I would appreciate input from someone more experienced and knowledgeable to confirm my thoughts.