Rumah > hujung hadapan web > View.js > Cara mengendalikan rangka halaman dan memuatkan animasi dalam Vue

Cara mengendalikan rangka halaman dan memuatkan animasi dalam Vue

PHPz
Lepaskan: 2023-10-15 13:04:49
asal
1303 orang telah melayarinya

Cara mengendalikan rangka halaman dan memuatkan animasi dalam Vue

Cara mengendalikan rangka halaman dan memuatkan animasi dalam Vue

Dalam aplikasi web moden, pengguna mempunyai jangkaan yang tinggi untuk pengalaman memuatkan halaman yang pantas. Untuk memenuhi permintaan ini, pembangun boleh menggunakan beberapa cara teknikal untuk meningkatkan kelajuan pemuatan halaman dan menambah beberapa kesan animasi untuk meningkatkan pengalaman pengguna.

Vue, sebagai rangka kerja JavaScript yang popular, menyediakan banyak pilihan untuk mengendalikan rangka halaman dan memuatkan animasi. Beberapa kaedah biasa akan diperkenalkan secara terperinci di bawah dan contoh kod khusus akan diberikan.

1. Rangka halaman

Rangka halaman merujuk kepada memaparkan beberapa reka letak dan gaya asas semasa proses pemuatan halaman, supaya pengguna dapat melihat bahawa halaman sedang dimuatkan dan menempah ruang untuk kandungan yang akan datang. Ini menghalang halaman daripada menjadi kosong semasa memuatkan dan meningkatkan pengalaman pengguna.

Dalam Vue, anda boleh menggunakan fungsi pemaparan Vue untuk mencipta rangka halaman. Berikut ialah contoh:

Vue.component('skeleton', {
  render: function (createElement) {
    return createElement('div', {
      attrs: {
        class: 'skeleton'
      }
    }, [
      createElement('div', {
        attrs: {
          class: 'skeleton-header'
        }
      }),
      createElement('div', {
        attrs: {
          class: 'skeleton-content'
        }
      }),
      createElement('div', {
        attrs: {
          class: 'skeleton-footer'
        }
      })
    ])
  }
})
Salin selepas log masuk

Dalam kod di atas, kami mencipta komponen Vue global bernama "rangka", yang menggunakan fungsi pemaparan untuk menjana struktur HTML rangka halaman. Dalam contoh ini, kami mencipta rangka yang mengandungi pengepala, kandungan dan pengaki dan menggayakannya menggunakan nama kelas CSS.

Kemudian, dalam komponen yang perlu memaparkan rangka halaman, pemaparan bersyarat boleh digunakan untuk menentukan masa untuk memaparkan rangka halaman. Berikut ialah contoh:

<template>
  <div>
    <div v-if="loading">
      <skeleton></skeleton>
    </div>
    <div v-else>
      <!-- 页面内容 -->
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      loading: true
    }
  },
  mounted() {
    // 模拟异步数据加载
    setTimeout(() => {
      this.loading = false
    }, 2000)
  }
}
</script>
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan arahan pemaparan bersyarat Vue v-if untuk menentukan masa untuk memaparkan rangka halaman. Apabila memuatkan adalah benar, halaman rangka dipaparkan; apabila memuatkan adalah palsu, kandungan halaman sebenar dipaparkan. Dalam cangkuk kitar hayat yang dipasang, kami mensimulasikan proses pemuatan data tak segerak dan menetapkan nilai pemuatan kepada palsu selepas 2 saat, seperti yang ditunjukkan dalam contoh.

Melalui kaedah di atas, kita boleh merealisasikan paparan rangka semasa memuatkan halaman dan meningkatkan pengalaman pengguna.

2. Memuatkan animasi

Memuatkan animasi adalah untuk menyampaikan maklumat yang halaman dimuatkan kepada pengguna dan memberikan sejenis maklum balas visual. Dalam Vue, pemuatan animasi boleh dicapai melalui animasi CSS, perpustakaan pihak ketiga atau kesan peralihan Vue.

  1. Animasi CSS

Menggunakan animasi CSS ialah salah satu cara yang paling mudah dan biasa. Sebagai contoh, kita boleh mentakrifkan animasi putaran:

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.loading {
  animation: spin 1s infinite linear;
}
Salin selepas log masuk

Kemudian, tambahkan nama kelas CSS pada elemen yang perlu memaparkan animasi pemuatan, seperti yang ditunjukkan di bawah:

<template>
  <div>
    <div v-if="loading" class="loading"></div>
    <div v-else>
      <!-- 页面内容 -->
    </div>
  </div>
</template>
Salin selepas log masuk

Dalam contoh di atas, apabila memuatkan adalah benar, mesej dengan elemen "pemuatan", yang akan mencetuskan animasi CSS.

  1. Perpustakaan pihak ketiga

Selain menggunakan animasi CSS, kami juga boleh menggunakan beberapa perpustakaan pihak ketiga untuk mencapai kesan animasi pemuatan yang lebih kompleks. Contohnya, gunakan perpustakaan "vue-spinner" untuk memaparkan animasi pemuatan ikon berputar:

Mula-mula, pasang perpustakaan "vue-spinner":

npm install vue-spinner --save
Salin selepas log masuk

Kemudian, import dan gunakan pustaka dalam komponen yang perlu gunakan animasi pemuatan:

<template>
  <div>
    <div v-if="loading">
      <spinner></spinner>
    </div>
    <div v-else>
      <!-- 页面内容 -->
    </div>
  </div>
</template>

<script>
import Spinner from 'vue-spinner'

export default {
  components: {
    Spinner
  },
  data() {
    return {
      loading: true
    }
  },
  mounted() {
    // 模拟异步数据加载
    setTimeout(() => {
      this.loading = false
    }, 2000)
  }
}
</script>
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan pemaparan bersyarat untuk menentukan masa untuk memaparkan animasi pemuatan dalam komponen yang perlu memaparkan animasi pemuatan. Apabila pemuatan adalah benar, paparkan komponen "pemutar", yang akan memaparkan ikon pemuatan berputar. Apabila memuatkan adalah palsu, kandungan halaman sebenar dipaparkan.

Ringkasnya, Vue menyediakan pelbagai kaedah untuk mengendalikan rangka halaman dan memuatkan animasi. Dengan menggunakan fungsi pemaparan dan pemaparan bersyarat, kami boleh memaparkan rangka halaman dan menggunakan animasi CSS dan perpustakaan pihak ketiga, kami boleh mencapai pelbagai kesan animasi pemuatan yang hebat. Dengan menggunakan cara teknikal ini, kami boleh meningkatkan kelajuan pemuatan halaman aplikasi web dan memberikan pengguna pengalaman yang lebih baik.

Atas ialah kandungan terperinci Cara mengendalikan rangka halaman dan memuatkan animasi dalam Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan