v-cloak VueJS
26/03/2019 • Raphael Kieling Tondin
v-cloak
é um diretiva que ficará atrelada em todos os componentes enquanto eles não estiverem finalizados. Infelizmente ele não vem por default e precisamos colocar na mão. Os exemplos foram retirados daqui.
O problema
Quando o VueJS
não é instanciado não carrega ele vai acabar mostrando o conteúdo html
sem lógica mesmo. Isso pode acontecer em outros caras como o Twig
do symfony onde existe um problema de renderização bem visível, onde o componente inicia com html e espera o VueJS
vir trabalhar nele.
Vamos simular um problema, forçando um renderização atrasada.
Resolvendo
Vamos adicionar um css para esconder ele enquanto estiver em processo de renderização:
[v-cloak] > * { display:none }
[v-cloak]::before { content: "loading…" }
Finalizando
- O
v-cloak
é apenas um classe no final de contas, utiliza seletores css a vontade. - Não utilize ele para aguardar requisições ou estado de objetos, o
v-if
cumpre bem o seu papel. - Não adicione em atributos como
img
provavelmente a imagem irá carregar bem depois.