como mudar as visualizações com o roteador backbone.js?

Essa é mais uma pergunta conceitual, em termos de uso do roteador de backbone e renderização de visualizações no backbone.

por uma questão de exemplo (com o que estou construindo para aprender isso), tenho um aplicativo CRUD básico para contatos, com formulário de criação, lista de todos os contatos, exibição única de contato e formulário de edição.

por uma questão de simplicidade, vou dizer que só quero ver uma dessas coisas de cada vez. Obviamente, mostrar e ocultá-los com o jQuery seria trivial, mas não é isso que estou procurando.

Eu tenho duas idéias

1) acionar eventos personalizados do meu roteador que remove todas as visualizações e envia eventos que poderiam ser ouvidos em todas as visualizações (acionando um método close) e uma visualização principal do aplicativo que instancia uma visualização específica - ou seja:

App.Router = Backbone.Router.extend({
    routes: {
        '' : 'index',
        'addnew' : 'addNew',
        'contacts/:id' : 'singleContact',
        'contacts/:id/edit' : 'editContact'
    },

    index: function(){

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:index');
    },

    addNew: function() {

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:addNew');
    },

    singleContact: function(id) {

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:singleContact', id);
    },

    editContact: function(id) {

        vent.trigger('contactR:closeAll');
        vent.trigger('contactR:editContact', id);
    },

});

(nb: vent está estendendo o objeto de eventos de backbone para que eu possa publicar / publicar)

2) ou devo / devo / devo enviar um evento close all e criar uma instância da visualização no roteador?

Observe que estou procurando conseguir isso sem me aprofundar em bibliotecas ou estruturas adicionais, como marionetes etc.

questionAnswers(1)

yourAnswerToTheQuestion