Rumah  >  Artikel  >  hujung hadapan web  >  Cara mengendalikan rangka halaman dan memuatkan animasi dalam Vue

Cara mengendalikan rangka halaman dan memuatkan animasi dalam Vue

PHPz
PHPzasal
2023-10-15 13:04:491239semak imbas

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'
        }
      })
    ])
  }
})

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>

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;
}

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>

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

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>

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!

Kenyataan:
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