Tal vez esta es una pregunta trivial.
Entonces, cuando ejecuto mi aplicación vuejs en el navegador, habilita la velocidad de descarga de la aceleración (se establece en una conexión baja). Obtuve la salida de sintaxis vue sin terminar en el navegador.
Sé que podemos engañarlo mostrando la imagen de carga antes de que se cargue toda la página, pero ¿hay alguna mejor solución para solucionar esto?
javascript
vue.js
antoniputra
fuente
fuente
[v-cloak] { display: none; } <div v-cloak> {{ message }} </div>
significa, ¿debería agregar unv-cloak
atributo en cada elemento que deseo ocultar?App
div principal debería estar bienv-cloak
debería ser el valor predeterminado y que si alguien realmente quisiera mostrarlo{{ }}
, debería usar algo comov-uncloak
.display:none
en HTML existente, es una mala bandera para SEO. Creo que puede ser mejor usar algún tipo de superposición hasta que se cargue la página.Adjunto el siguiente codepen. Puedes ver la diferencia con y sin
v-cloak
.http://codepen.io/gurghet/pen/PNLQwy
fuente
v-cloak
atributo.Según lo sugerido por otros, usar v-cloak es la solución adecuada. Sin embargo, como @ DelightedD0D mencionó, ES torpe. La solución simple es agregar un poco de CSS en el pseudo selector
::before
dev-cloak
directiva.En su archivo sass / less, algo parecido a
Por supuesto, deberá proporcionar una ruta válida y accesible para la imagen del cargador. Se renderizará algo así.
Espero eso ayude.
fuente
Con la
v-cloak
directiva, puede ocultar los enlaces de bigote sin compilar hasta que la instancia de vue haya terminado de compilarse. Debe usar el bloque CSS para ocultarlo hasta que se compile.HTML:
CSS:
Esto
<div>
no será visible hasta que se complete la compilación.Puede ver este enlace Ocultar elementos durante la carga utilizando
v-cloak
para una mejor comprensión.fuente
No incluya ninguna sintaxis vuejs en el archivo HTML:
En su JavaScript principal, puede:
Consulte la plantilla de paquete web vuetify como referencia.
Otra solución es usar:
Con:
fuente
Puede mover cualquier renderizado a un componente contenedor simple . La inicialización de VueJS, por ejemplo, el nuevo Vue (...) no debe contener ningún HTML aparte de ese componente de contenedor único.
Dependiendo de la configuración, incluso podría tener
<app>Loading...</app>
dónde la aplicación es el componente contenedor con cualquier carga de HTML o texto en el medio que luego se reemplaza en la carga.fuente
fuente
Use
<v-cloak>
para ocultar su código Vue antes de vincular datos a lugares relevantes. En realidad, se encuentra en un lugar en la documentación de Vue que cualquiera podría perderlo a menos que lo busque o lea detenidamente.fuente
Sí, puedes usar
v-cloak
, me gusta usar spinkit , es una gran biblioteca con solo CSS, mira un ejemplo simple:Enlace: - http://tobiasahlin.com/spinkit/
fuente
Prefiero usar
v-if
con una propiedad calculada que verifica si mis datos están listos, como este:De esta manera, es más fácil mostrar un cargador solo si los datos no están listos (usando
v-else
).En este caso particular
v-if="variableName"
también funcionaría, pero puede haber escenarios más complicados.fuente
Para aquellos que usan v-cloak en una vista con múltiples archivos Laravel Blade y no funciona, intente usar v-cloak en el archivo Blade principal en lugar de en cualquier archivo Blade secundario.
fuente