Vue-Router analisa o código fonte (D). A diferença de US $ rota e este roteador Vue $ nesta

Para vue interno, se é o componente raiz ou sub-montagem, não é este $ router e esta rota $ duas propriedades, a diferença entre eles como se segue:

$ VueRouter exemplo, aponta para o router de corrente, isto é novo vue ({router: roteador}) onde recebidas propriedades de objecto da instância router e métodos podem ser usados ​​exemplos VueRouter listados na secção anterior,

$ pontos de rota para a rota atual objeto saltos, um objeto contém o atual informações de roteamento, <Router-View /> componentes terão de ser adquiridos pelos componentes de atributos de renderização

Por US $ roteador, que contém os seguintes atributos

  • caminho; a rota atual da King Road, Road King sempre resolver para o absoluto, por exemplo: / foo / bar
  • o params; tipo de objecto, e um fragmento contendo a dinâmica completa segmentos correspondentes, se não houver nenhum parâmetro rota é um objecto nulo
  • Consulta; tipo de objeto, parâmetro de consulta URL indica, para / foo / user = 1 é, $ route.query.user é igual a 1, se há parâmetros de consulta, em seguida, o objeto está vazio
  • valor hash na rota atual (com #), se o valor hash não é a string vazia; haxixe
  • fullPath; URL após a conclusão da análise, contida consulta parâmetros e mistura completa de Road King
  • Combinado; um array, todo o registro aninhado rota Road King contendo o segmento de rota atual, ou seja, todos os objetos pai são encaminhadas dentro do array, <router-view /> componentes usará esta propriedade
  • nome; a rota atual do nome e nome de alias relacionado
  • Redirectedfrom; nome de roteamento de origem de redirecionamento, e apelidos e redirecionamentos relacionados.
  • meta; meta 值

nome, Meta dois valores é criar vuerouter, cada router para o encaminhamento de ficha de entrada correspondente ao nome de atributo e mata atributo , geralmente depois de algum outro tratamento

 escritor por: Desert QQ: 22969969

Para castanha:

    < Div id = "app" > 
        < router-link para = "/ login" >登陆</ router-link > 
        < router-link para = "/ info / 15" >详情页</ router-link >      
        < hr / > 
        < router-view > </ router-view > 
    </ div > 
    < roteiro > 
        const de login = {template: ' ! <div> Página de login </ div> '}                        
        Const Informações   ={Template: ' <div> id: {{presente $ route.params.id}} </ div>. ' } 
        Rotas const = [                                                        
            {caminho: ' / login ' , componente: login, name: ' logon ' }, 
            {caminho: ' / info /: id ' , componente: informação, name: ' informações ' }, 
        ] 
        const app =  new Vue ({                                                      
            el: ' #app ' ,
            router:nova VueRouter ({rotas}) 
        }) 
    </ roteiro >

Render, como segue:

Nós clique sobre a rota de destino para a página de login, digite o console aplicativo $ route, em seguida, clique na página de detalhes, em seguida, entrar no console app $ route, imprimir, respectivamente, como segue:

página de login: Informações página:

$ Route frequentemente utilizado quando o objeto é na guarda de navegação, o parâmetro para 2 é o objeto $ route.

Quando a instalação é executada VueRouter instalá-lo, o método é o seguinte:

Object.defineProperty (Vue.prototype, '$ router', {                  // Vue实例的$ router指向了this._routerRoot._router 
    get: função get () { retornar  este ._routerRoot._router} 
}); 

Object.defineProperty (Vue.prototype, '$ route', {                  // 设置$ route为este $ root._route. 
    Get: função get () { retornar  este ._routerRoot._route} 
});

Ao executar Object.defineProperty, visitamos isso dentro de Vue. $ Router e este. $ Route foram apontando this._routerRoot._router e this._routeRoot._route, e esses dois atributos são incorporados ao VueRouter no momento da instalação Vue beforeCreate implementado dentro da função do ciclo de vida, como segue:

beforeCreate: função beforeCreate () {
   SE (ISDEF ( a este $ options.router).) {              // Se este existem $ options.router, isto é, passada ao criar um objecto roteador exemplo vue. 
    a esta ._routerRoot = a esta ;                          // no exemplo vue adicionar um ponto _routerRoot a si próprios, isto é, vue exemplo 
    a este ._router = a esta $ options.router ;.              // add exemplo vue-router é configurado de um ponto sobre a vue _router exemplo 
    a este ._router.init ( a este );                          // VUE-Router chamadas exemplo init () inicia os parâmetros de vue exemplo 
    Vue.util.defineReactive ( a este , '_route', a esta._router.history.current);          // por defineReactive Vue _router colocar em responsivo, igual this._router.history.current 
  } else {
     a este ._routerRoot = ( a este . $ && pai o presente $ parent._routerRoot). || a esta ; 
  } 
  registerInstance ( a este , a este ); 
},

this._router.history.current igual atributo de instância VueRouter .history.current, o método será executado no protótipo História updateRoute após cada salto roteamento, redefine atributos atuais, criar uma rota objetos neste método é o seguinte:

    função createRoute (Record, LOCATION, Redirectedfrom, Router) {     // criar um registro de rota objeto: as informações de roteamento local de gravação: necessidade de saltar de roteamento endereço (incluindo o caminho, consulta, haxixe e params objeto) redirectedForm: roteador desconhecido: Vue- router casos 
        var stringifyQuery $$ = router 1 &&. router.options.stringifyQuery; 

        var consulta location.query || = {};                                    // redefinir a consulta, se o conjunto não é objeto vazio é redefinido para 
        o try { 
            consulta = clone (consulta); 
        } a captura (E) {} 

        var rota = {                                                        // adicionar uma rota objetos
            Nome: location.name || (Record && record.name),                      // informações de nome 
            Meta: (Record && record.meta) || {},                                 // Meta informações 
            caminho: || location.path '/' , 
            o hash: o location.hash || '',                                           // roteamento Road king 
            consulta: Query,                                                        // rota o hash 
            params: location.params || {},                                       // rota do params 
            fullPath: GetFullPath (. LOCALIZAÇÃO, stringifyQuery $$ 1),                  / / completo king Road
            Matched: registro formatMatch (registro) :? []                           // registro do registro atual para gravar todos nós ancestral do pai até que o nó 
        };
         IF (Redirectedfrom) { 
            route.redirectedFrom = GetFullPath (. Redirectedfrom, stringifyQuery $$ 1 ); 
        } 
        return Objeto .Freeze (rota)                                          // Finalmente, a rota para congelar objetos e retorno (que não permite novas propriedades) 
    }

Acho que você gosta

Origin www.cnblogs.com/greatdesert/p/12458385.html
Recomendado
Clasificación