mungkin ini pertanyaan sepele.
jadi, ketika saya menjalankan aplikasi vuejs saya di browser dengan memungkinkan kecepatan unduhan throttling (set ke koneksi rendah). Saya mendapat keluaran sintaks yang belum selesai di browser.
Saya tahu kami bisa menyelesaikan masalah ini dengan menampilkan gambar yang dimuat sebelum seluruh halaman dimuat, tetapi apakah ada solusi terbaik untuk memperbaikinya?
javascript
vue.js
antoniputra
sumber
sumber
[v-cloak] { display: none; } <div v-cloak> {{ message }} </div>
itu berarti, saya harus menambahkanv-cloak
atribut di setiap elemen yang saya ingin sembunyikan?App
div utama harus baikv-cloak
harus menjadi default dan bahwa jika seseorang benar-benar ingin menunjukkan{{ }}
mereka harus menggunakan sesuatu sepertiv-uncloak
.display:none
pada HTML yang ada, adalah tanda buruk untuk SEO. Saya pikir mungkin lebih baik menggunakan semacam overlay hingga pemuatan halaman.Saya melampirkan codepen berikut. Anda dapat melihat perbedaannya dengan dan tanpa
v-cloak
.http://codepen.io/gurghet/pen/PNLQwy
sumber
v-cloak
atribut.Seperti yang disarankan oleh orang lain menggunakan v-jubah adalah solusi yang tepat. Namun seperti @ DelightedD0D menyebutkan itu kikuk. Solusi sederhana adalah dengan menambahkan beberapa CSS di pemilih semu
::before
dariv-cloak
direktif.Dalam file sass Anda / kurang sesuatu di sepanjang baris
Tentu saja Anda harus memberikan jalur yang valid dan dapat diakses ke gambar loader. Ini akan membuat sesuatu seperti.
Semoga ini bisa membantu.
sumber
Menggunakan
v-cloak
direktif Anda dapat menyembunyikan binding kumis yang belum dikompilasi sampai instance vue selesai dikompilasi. Anda harus menggunakan blok CSS untuk menyembunyikannya sampai dikompilasi.HTML:
CSS:
Ini
<div>
tidak akan terlihat sampai kompilasi selesai.Anda dapat melihat tautan ini Sembunyikan elemen selama memuat menggunakan
v-cloak
untuk mengecilkan lebih baik.sumber
Jangan sertakan sintaks vuejs apa pun di file HTML:
Di JavaScript utama Anda, Anda dapat:
Lihat templat webpack vuetify untuk referensi.
Solusi lain adalah menggunakan:
Dengan:
sumber
Anda dapat memindahkan render apa pun ke komponen pembungkus sederhana . Inisialisasi VueJS misalnya Vue baru (....) tidak boleh mengandung HTML apa pun selain dari komponen pembungkus tunggal.
Bergantung pada pengaturan Anda bahkan bisa memiliki di
<app>Loading...</app>
mana aplikasi adalah komponen pembungkus dengan memuat HTML atau teks di antaranya yang kemudian diganti saat memuat.sumber
sumber
Gunakan
<v-cloak>
untuk menyembunyikan kode Vue Anda sebelum mengikat data ke tempat yang relevan. Ini sebenarnya terletak di suatu tempat di dokumentasi Vue bahwa siapa pun mungkin akan melewatkannya kecuali Anda mencarinya atau membaca dengan seksama.sumber
Yap, Anda dapat menggunakan
v-cloak
, saya suka menggunakan spinkit , adalah pustaka hebat dengan hanya CSS, periksa contoh sederhana:Tautan: - http://tobiasahlin.com/spinkit/
sumber
Saya lebih suka menggunakan
v-if
dengan properti yang dihitung yang memeriksa apakah data saya siap, seperti ini:Dengan cara ini lebih mudah menampilkan loader hanya jika data tidak siap (menggunakan
v-else
).Dalam kasus khusus ini
v-if="variableName"
akan berhasil juga, tetapi mungkin ada skenario yang lebih rumit.sumber
Bagi mereka yang menggunakan v-cloak dalam tampilan dengan beberapa file Blade Laravel dan itu tidak berfungsi, cobalah untuk menggunakan v-cloak pada file blade induk daripada pada file blade anak apa pun.
sumber