In broad terms, there’s at least two options here. Somewhere in your app, probably in the top level component that is often called App.vue, you’ll most likely have a
<router-view></router-view> element. This is where Vue router will render your routes. You can change that part of the template to this:
<div v-else>you need to sign in</div>
And in the same component you’d have have a reactive ‘userId’ property inside the meteor object like you have above with currentUser, that calls Meteor.userId(). I prefer Meteor.userId() here above Meteor.user(), but that is another topic.
The second option is, in this same component, to use Vue’s watcher on the userId and inside thst, when there’s no userId, use router.push to direct user to the login page.
I generally try not to put too much of this logic into routes themselves as it is easier to deal with reactivity in the component.