Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk melaksanakan komponen kotak terapung dalam Vue?

Bagaimana untuk melaksanakan komponen kotak terapung dalam Vue?

王林
王林asal
2023-06-25 11:59:332570semak imbas

Vue.js ialah rangka kerja bahagian hadapan yang sangat popular yang menyediakan cara visual untuk menulis, membina dan mengurus aplikasi web. Salah satu kelebihan utama rangka kerja ini ialah kemudahan komponen UI boleh dilaksanakan. Artikel ini akan memperkenalkan cara melaksanakan komponen kotak terapung dalam Vue.

1. Asas Rangka Kerja

Sebelum memahami komponen, kita perlu menjelaskan beberapa konsep asas: komponen Vue, prop dan slot. Komponen Vue ialah blok kod boleh guna semula yang terdiri daripada templat, skrip dan gaya. Props ialah cara untuk menghantar parameter kepada komponen, dan slot ialah cara untuk memasukkan kandungan ke dalam komponen.

2. Cara melaksanakan komponen floating box

Untuk memahami cara melaksanakan komponen floating box, kita perlu memahami tujuan floating box. Komponen kotak terapung membolehkan kandungan dipersembahkan kepada pengguna dalam bentuk tetingkap terapung. Reka bentuk ini berguna dalam beberapa situasi, seperti apabila anda perlu membenamkan video atau iklan.

Agak mudah untuk melaksanakan komponen sedemikian dalam Vue. Kami hanya perlu menggunakan templat Vue.js dan CSS untuk mencipta kotak terapung asas. Berikut ialah komponen kotak terapung mudah dan kodnya:

<template>
  <div class="floating-box">
    <div class="close-btn" @click="closeBox">Close</div>
    <slot></slot>
  </div>
</template>

<script>
export default {
  methods: {
    closeBox() {
      this.$emit("box-closed");
    },
  },
};
</script>

<style lang="scss" scoped>
.floating-box {
  position: fixed;
  top: 20px;
  right: 20px;
  width: 300px;
  height: 300px;
  background-color: #fff;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  border-radius: 5px;
  padding: 20px;
}

.close-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  cursor: pointer;
}
</style>

Dalam komponen ini, kami menggunakan templat Vue.js untuk mentakrifkan struktur asas kotak terapung. Elemen 58cb293b8600657fad49ec2c8d37b472 digunakan di sini untuk memasukkan kandungan tersuai semasa membuat seketika komponen.

<floating-box>
  <h2>Hello, World!</h2>
</floating-box>

Dalam CSS, kami menentukan sifat seperti kedudukan, atas, kanan, lebar, tinggi, warna latar belakang, bayang-bayang kotak dan jejari sempadan untuk kotak terapung. Kami juga menetapkan kedudukan mutlak untuk butang tutup, yang bermaksud bahawa tidak kira di mana anda mengklik, butang itu akan berfungsi dengan betul. Apabila butang tutup diklik, kami menggunakan kaedah $emit dalam kaedah untuk menghantar acara kepada komponen induk Komponen induk boleh melakukan operasi yang sepadan dengan mendengar acara ini.

3. Cara menggunakan komponen kotak terapung

Untuk menggunakan komponen kotak terapung, anda hanya perlu mengimportnya ke dalam komponen yang perlu anda gunakan, dan kemudian bungkusnya dalam tag. Sebagai contoh, anda boleh menggunakan komponen ini dalam komponen utama aplikasi anda.

<template>
  <div>
    <header>
      <h1>My App</h1>
    </header>
    <main>
      <floating-box @box-closed="hideBox">
        <h2>Hello, World!</h2>
      </floating-box>
    </main>
  </div>
</template>

<script>
import FloatingBox from "./components/FloatingBox"; // 导入

export default {
  components: {
    FloatingBox, // 注册组件
  },
  methods: {
    hideBox() {
      // 执行
    },
  },
};
</script>

Di sini kami menggunakan @box-closed untuk mendengar acara penutup yang dicetuskan dalam komponen kotak terapung.

4. Ringkasan

Artikel ini memperkenalkan cara melaksanakan komponen kotak terapung dalam Vue.js, bukan sahaja menggunakan templat dan CSS Vue.js, tetapi juga memahami konsep komponen dan slot prop. Menggunakan konsep ini, anda boleh melanjutkan komponen ini dengan mudah dan menggunakan fungsi yang lebih maju untuk memenuhi keperluan anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan komponen kotak terapung 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