Perguntas da entrevista de vue de front-end

1. Compreensão do MVVM

O nome completo do MVVM é Model-View-ViewModel

O modelo representa um modelo de dados. Os dados e a lógica de negócios são definidos na camada de modelo; geralmente se referem ao processamento de várias lógicas de negócios e à manipulação de dados realizada no back-end e, para o front-end, é a interface API fornecida pelo Processo interno. View representa a visualização da IU e é responsável pela exibição de dados; a camada de visualização é a interface do usuário. O front end é construído principalmente por HTML e CSS. ViewModel é responsável por monitorar mudanças de dados no Model e controlar a atualização da view, processando operações de interação com o usuário;

O Vue é conduzido por dados , o próprio Vue DOM e vinculação de dados, uma vez que as vinculações criadas, DOM e os dados serão sincronizados, cada um quando os dados forem alterados, ocorrerão alterações no DOM . ViewModel é o núcleo do Vue, é uma instância do Vue. O elemento HTML em um determinado elemento HTML no escopo da instância Vue pode ser o corpo ou o elemento referido por um determinado id.

Dois, vue instruções comuns

1. v-text v-text é usado principalmente para atualizar textContent, que pode ser equivalente ao atributo text de JS.

<span v-text = "name"> </span> 
ou 
<span> expressão de interpolação {{name}} </span>

2. v-html é equivalente ao atributo innerHtml de JS

<div v-html = "content"> </div>

3. v-cloak é usado para manter o elemento até o final da instância associada para compilar e resolver o problema de oscilação

<div id = "app" v-cloak> 
    <div> 
        {{msg}} 
    </div> 
</div> 
<script type = "text / javascript"> 
    novo Vue ({ 
      el: '# app', 
      dados: { 
        msg: 'hello world' 
      } 
    }) 
</script>

Normalmente, ele piscará quando a página for carregada e será exibido primeiro:

<div> 
    {{msg}} 
</div>

Exibido apenas após a compilação:

<div> 
    olá, mundo! 
</div>

Você pode usar o comando v-cloak para resolver o problema de oscilação da expressão de interpolação e usar o seletor de atributos no css para definir o v-cloak para exibir: nenhum;

4. A instância associada a v-uma vez v-uma vez será renderizada apenas uma vez. Após a re-renderização, a instância e todos os seus nós filhos serão considerados como conteúdo estático ignorado, que pode ser usado para otimizar o desempenho de atualização

<span v-once> Isso nunca vai mudar: {{msg}} </span> // 单个 元素
<div v-once> // 有 子 元素
    <h1> comentário </h1> 
    <p> {{msg} } </p> 
</div> 
<meu componente v-uma vez: comment = "msg"> </my-component> // 组件
<ul> 
    <li v-for = "i in list"> {{i }} </li> 
</ul>

No exemplo acima, mesmo se msg, list forem alterados, eles não serão renderizados novamente.

5. v-if v-if pode alcançar renderização condicional, Vue renderizará elementos de acordo com as condições verdadeiras e falsas do valor da expressão

<a v-if="true"> show </a>

6. v-else v-else é usado com v-if, deve seguir v-if ou v-else-if imediatamente, caso contrário, não funcionará

<a v-if="true"> mostrar </a> 
<a v-else> ocultar </a>

7. v-else-if v-else-if atua como o bloco else-if de v-if, que pode ser usado várias vezes em uma cadeia. A instrução switch pode ser implementada de maneira mais conveniente.

<div v-if = "type === 'A'"> 
    A 
</div> 
<div v-else-if = "type === 'B'"> 
    B 
</div> 
<div v-else- if = "type === 'C'"> 
    C 
</div> 
<div v-else> 
    Não A, B, C 
</div>

8. v-show também é usado para exibir elementos com base nas condições. Ao contrário de v-if, se o valor de v-if for falso, o elemento é destruído e não em dom. Mas os elementos de v-show sempre serão renderizados e salvos no dom. Ele simplesmente muda o atributo de exibição de css.

<span v-show = "true"> olá, mundo </ span>

Nota: v-if tem um custo de troca mais alto e v-show tem um custo de renderização inicial mais alto. Portanto, se você deseja alternar com muita frequência, v-show é melhor; se as condições são improváveis ​​de mudar durante o tempo de execução, v-if é melhor

9. v-for usa a instrução v-for para renderizar de acordo com a matriz transversal

<div v-for = "(item, index) in items"> </div> // Use in, index é um parâmetro opcional, indicando o índice do item atual

10. v-bind v-bind é usado para ligar dinamicamente um ou mais recursos. Quando não há parâmetros, ele pode ser vinculado a um objeto que contém pares de valores-chave. Frequentemente usado para vincular classe e estilo dinamicamente. E href etc. Abreviado como dois pontos [:]

<div id = "app"> 
    <div: class = "{'is-active': isActive, 'text-danger': hasError}"> </div> 
</div> 
<script> 
    var app = new Vue ( { 
        el: '#app', 
        data: { 
            isActive: true,   
            hasError: false     
        } 
    }) 
</script>

Após a compilação

<div class = "is-active"> </div>

11. v-model é usado para criar ligação de dados bidirecional no formulário

<div id = "app"> 
    <input v-model = "name"> 
    <p> olá {{name}} </p> 
</div> 
<script> 
    var app = new Vue ({ 
        el: '#app ', 
        data: { 
            name:' 小 明 ' 
        } 
    }) 
</script>

Os modificadores do modelo são

.lazy (ressincronizar no evento de mudança)> v-model.lazy .number (converter automaticamente o valor de entrada do usuário em um tipo numérico)> v-model.number .trim (filtrar automaticamente os espaços iniciais e finais da entrada do usuário) > v-model .trim

12. v-on v-on é usado principalmente para monitorar eventos dom para executar alguns blocos de código. A expressão pode ser um nome de método. Abreviado como: [@]

<div id = "app"> 
    <button @ click = "consoleLog"> </button> 
</div> 
<script> 
    var app = new Vue ({ 
        el: '#app', 
        métodos: { 
            consoleLog: function (event ) { 
                console.log (1) 
            } 
        } 
    }) 
</script>

Modificador de evento

.stop impede que o evento continue a se propagar. O evento de prevenção não recarrega mais a página. capture usa o modo de captura de evento, ou seja, o evento acionado pelo próprio elemento é processado aqui e, em seguida, é processado pelo elemento interno. self only when event.target is A função de processamento é acionada quando o próprio elemento atual. O evento once só será acionado uma vez. Passivo diz ao navegador que você não deseja impedir o comportamento padrão do evento

3. Qual é a diferença entre v-if e v-show?

Ponto comum: tanto v-if quanto v-show podem exibir e ocultar elementos

A diferença:

1. v-show é apenas uma propriedade de exibição do elemento de controle simples e v-if é a renderização condicional (a condição é verdadeira, o elemento será renderizado, se a condição for falsa, o elemento será destruído) 2. v-show tem a maior O primeiro custo de renderização, enquanto o primeiro custo de renderização de v-if é muito menor. 3. v-if tem maior custo de troca e v-mostra custo de troca é menor. 4. v-if tem correspondência v-else- if e v- else e v-show não tem 5. v-if pode ser usado com o modelo, mas v-show não pode

Quarto, como fazer o CSS funcionar apenas no componente atual?

Adicione o estilo de componente ao escopo

<estilo com escopo> 
	... 
</style>

5. Qual é o papel de manter vivo?

Quando o keep-alive envolve os componentes dinâmicos, as instâncias do componente inativo são armazenadas em cache, o que é usado principalmente para preservar o estado do componente ou evitar uma nova renderização.

6. Passos para usar plug-ins no Vue

1. Use a importação ... de ... sintaxe do ES6 ou o método require () do CommonJSd para introduzir plug-ins. 2. Use o método global Vue.use (plug-in) para usar plug-ins e você pode passar um objeto de opção Vue.use (MyPlugin, { someOption: true})

Sete, ciclo de vida Vue


9fac7319cd49229ef335d5a9b678c9e5.png


8. Quais são as maneiras de se comunicar entre os componentes do Vue

A comunicação entre os componentes do Vue refere-se apenas aos três tipos de comunicação a seguir: comunicação do componente pai-filho, comunicação do componente entre gerações, comunicação do componente irmão

Nove, a diferença entre os cenários calculados e observados e os do aplicativo

computed: é um atributo calculado, que depende de outros valores de atributo, e o valor de computed é armazenado em cache. Somente quando o valor do atributo depende de alterações, o 
valor computado será recalculado na próxima vez que o valor computado for obtido. 

observe: mais um efeito de "observação", semelhante a alguns dos callbacks do listener de dados, o callback será executado sempre que os dados mudarem quando as operações subsequentes monitoradas 

usarem o cenário: 
	quando precisamos do cálculo numérico, e dependendo de outros dados devem ser usados ​​computados 
	quando os dados de que precisamos Ao realizar operações assíncronas ou caras durante as mudanças, o relógio deve ser usado

Dez, existem vários modos de roteamento vue-roteador

  1. Hash : use o valor de hash do URL como uma rota. Suporta todos os navegadores.

  2. Histórico : desde a API de histórico do HTML5 e configuração do servidor. Consulte o modo HTML5 History no site oficial

  3. Resumo : suporte a todos os modos de operação javascript. Se for descoberto que não há API do navegador, a rota será automaticamente forçada para este modo.

11. Compreensão da página única do SPA, quais são suas vantagens e desvantagens

SPA (aplicativo de página única) carrega apenas o HTML, JavaScript e CSS correspondente quando a página da Web é inicializada. Depois que a página é carregada, o SPA não recarrega ou pula a página devido às operações do usuário. Em vez disso, usa o mecanismo de roteamento para implementar transformação de conteúdo HTML, interface do usuário e interação do usuário, evitando o recarregamento da página Vantagens:

1. A experiência do usuário é boa e rápida. A mudança de conteúdo não precisa recarregar a página inteira, evitando saltos desnecessários e renderização repetida. 2. Com base no ponto acima, o SPA é relativamente menos estressante no servidor 3. Separação de frente -end e back-end responsabilidades, estrutura clara, o front-end realiza a lógica de interação, o back-end é responsável pelo processamento de dados

Desvantagens:

1. O carregamento inicial é demorado: para realizar a função do aplicativo da Web de página única e o efeito de exibição, JavaScript e CSS precisam ser carregados uniformemente quando a página é carregada e algumas páginas são carregadas sob demanda. e gerenciamento de roteamento para trás: como uma única página é aplicada em uma. Todo o conteúdo é exibido na página, de modo que as funções de avanço e retrocesso do navegador não podem ser usadas. Todas as alternâncias de página precisam construir você mesmo o gerenciamento de pilha. 3. O SEO é mais difícil : Uma vez que todo o conteúdo é substituído dinamicamente e exibido em uma página, ele está no SEO. Ele tem fraquezas naturais



Acho que você gosta

Origin blog.51cto.com/15115139/2675806
Recomendado
Clasificación