talvez essa seja uma pergunta trivial.
por isso, quando executo meu aplicativo vuejs no navegador, permite a aceleração da velocidade de download (define como baixa conexão). Eu tenho saída de sintaxe inacabada vue no navegador.
Sei que podemos resolver isso mostrando a imagem de carregamento antes que a página inteira seja carregada, mas existe a melhor solução para corrigir isso?
javascript
vue.js
antoniputra
fonte
fonte
[v-cloak] { display: none; } <div v-cloak> {{ message }} </div>
significa, devo adicionarv-cloak
atributo em todo elemento que eu desejo ocultar?App
div deve ser finov-cloak
deve ser o padrão e que, se alguém realmente quiser mostrar{{ }}
, deve usar algo comov-uncloak
.display:none
no HTML existente, é um sinalizador ruim para o SEO. Eu acho que pode ser melhor usar algum tipo de sobreposição até carregar a página.Anexei o seguinte código de código. Você pode ver a diferença com e sem
v-cloak
.http://codepen.io/gurghet/pen/PNLQwy
fonte
v-cloak
atributoConforme sugerido por outras pessoas, o uso do v-cloak é a solução adequada. No entanto, como @ DelightedD0D mencionou, é desajeitado. A solução simples é adicionar um pouco de CSS no pseudo-seletor
::before
dev-cloak
diretiva.No arquivo sass / less, algo como as linhas de
Obviamente, você precisará fornecer um caminho válido e acessível para a imagem do carregador. Vai render algo parecido.
Espero que ajude.
fonte
Usando
v-cloak
diretiva, você pode ocultar as ligações de bigode não compiladas até que a instância do vue termine de compilar. Você deve usar o bloco CSS para ocultá-lo até compilar.HTML:
CSS:
este
<div>
não será visível até que a compilação seja concluída.Você pode ver este link Ocultar elementos durante o carregamento usando
v-cloak
para entender melhor.fonte
Não inclua nenhuma sintaxe vuejs no arquivo HTML:
No seu JavaScript principal, você pode:
Consulte o modelo do vuetify webpack para referência.
Outra solução é usar:
Com:
fonte
Você pode mover qualquer renderização para um componente simples do wrapper . A inicialização do VueJS, por exemplo, o novo Vue (....) não deve conter nenhum HTML além desse único componente do wrapper.
Dependendo da configuração, você pode até ter
<app>Loading...</app>
onde app é o componente do invólucro, com qualquer HTML ou texto carregado entre os quais é substituído no carregamento.fonte
fonte
Use
<v-cloak>
para ocultar seu código do Vue antes de vincular dados a locais relevantes. Na verdade, ele está localizado em um local na documentação do Vue que qualquer pessoa pode sentir falta, a menos que você o procure ou leia atentamente.fonte
Sim, você pode usar
v-cloak
, eu gosto de usar spinkit , é uma ótima biblioteca apenas com CSS, veja um exemplo simples:Link: - http://tobiasahlin.com/spinkit/
fonte
Prefiro usar
v-if
com uma propriedade computada que verifique se meus dados estão prontos, assim:Dessa maneira, é mais fácil mostrar um carregador apenas se os dados não estiverem prontos (usando
v-else
).Nesse caso específico,
v-if="variableName"
também funcionaria, mas pode haver cenários mais complicados.fonte
Para aqueles que usam o v-cloak em uma exibição com vários arquivos Laravel Blade e não está funcionando, tente usar o v-cloak no arquivo blade pai em vez de em qualquer arquivo blade filho.
fonte