Rumah hujung hadapan web Soal Jawab bahagian hadapan Vue menentukan sama ada borang telah berubah

Vue menentukan sama ada borang telah berubah

May 25, 2023 am 10:47 AM

Vue ialah salah satu rangka kerja bahagian hadapan yang sangat popular untuk membina aplikasi web interaktif. Dalam Vue, borang ialah salah satu ciri teras. Borang ialah elemen HTML yang digunakan untuk mengumpul data daripada pengguna. Ia boleh mengandungi pelbagai jenis elemen borang, seperti kotak input teks, senarai juntai bawah, butang radio, kotak semak dan banyak lagi. Walau bagaimanapun, fungsi yang sangat praktikal dalam Vue adalah untuk menentukan sama ada borang telah berubah, yang biasanya boleh digunakan untuk melakukan beberapa operasi, seperti menggesa pengguna untuk menyimpan perubahan yang belum disimpan, melumpuhkan atau mendayakan butang simpan, dsb. Dalam artikel ini, kami akan meneroka cara menggunakan Vue untuk menentukan sama ada borang telah berubah.

1. Gunakan v-model untuk mengikat data borang

Dalam Vue, gunakan arahan model-v untuk mengikat data borang ke objek data tika Vue. Sebagai contoh, dalam kotak input teks, anda boleh menggunakan arahan model-v untuk mengikat nilai yang dimasukkan ke objek data bagi contoh Vue. Seperti yang ditunjukkan di bawah:

<template>
  <div>
    <input type="text" v-model="name">
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: '' // 创建一个名为name的数据属性
    }
  }
}
</script>
Salin selepas log masuk

Kod di atas akan mencipta kotak input teks Apabila nilai kotak input berubah, atribut data nama bagi contoh Vue akan berubah dengan sewajarnya.

2. Gunakan sifat yang dikira untuk menentukan sama ada borang telah berubah

Atribut data dalam tika Vue boleh digunakan untuk menyimpan nilai semasa borang. Tetapi bagaimana untuk mengetahui sama ada borang telah berubah? Anda boleh menggunakan sifat pengiraan Vue untuk menyelesaikan masalah ini. Sifat yang dikira ialah jenis sifat khas dalam Vue yang nilainya dikira daripada sifat data lain. Contohnya, dalam contoh di atas, anda boleh mencipta sifat terkira untuk menentukan keadaan borang yang diubah, seperti yang ditunjukkan di bawah:

<template>
  <div>
    <input type="text" v-model="name">
    <p>表单是否改变: {{ isDirty }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: '', // 创建一个名为name的数据属性
      originalName: '' // 创建一个名为originalName的数据属性,用于保存原始值
    }
  },
  computed: {
    isDirty() {
      return this.name !== this.originalName
    }
  },
  mounted() {
    this.originalName = this.name // 记录表单的原始值
  }
}
</script>
Salin selepas log masuk

Dalam kod di atas, kami mencipta sifat terkira isDirty, yang digunakan untuk tentukan sama ada bentuk telah berubah. Nilai harta yang dikira dikira dengan membandingkan nilai bentuk semasa dengan nilai bentuk asal. Untuk menyimpan nilai bentuk asal, kami juga mencipta atribut data originalName dan menetapkan nilainya kepada nilai awal nama apabila dipasang. Apabila nilai borang berubah, nilai sifat pengiraan isDirty berubah.

3 Gunakan jam tangan untuk memantau perubahan dalam nilai bentuk

Selain atribut yang dikira, Vue juga menyediakan satu lagi atribut khas, jam tangan, untuk memantau perubahan dalam atribut data. Atribut jam tangan boleh memantau perubahan dalam satu atau lebih atribut data dan melaksanakan operasi khusus apabila data berubah. Dalam borang, kita boleh menggunakan atribut jam tangan untuk memantau perubahan dalam nilai borang, seperti yang ditunjukkan di bawah:

<template>
  <div>
    <input type="text" v-model="name">
    <p>表单是否改变: {{ isDirty }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: '', // 创建一个名为name的数据属性
      originalName: '' // 创建一个名为originalName的数据属性,用于保存原始值
    }
  },
  computed: {
    isDirty() {
      return this.name !== this.originalName
    }
  },
  mounted() {
    this.originalName = this.name // 记录表单的原始值
    this.$watch('name', (newValue, oldValue) => {
      if (newValue !== oldValue) {
        console.log('表单值改变')
        this.$emit('change') // 触发自定义事件change
      }
    })
  }
}
</script>
Salin selepas log masuk

Dalam kod di atas, kami mencipta atribut jam tangan untuk memantau perubahan dalam atribut nama dan melaksanakan tindakan yang sepadan apabila operasi nilai berubah. Dalam contoh ini, selagi nilai atribut nama berubah, perubahan peristiwa tersuai akan dicetuskan Peristiwa ini boleh dipantau dan diproses dalam komponen induk.

4 Gunakan perintah v-sekali untuk menyimpan nilai awal borang

Terdapat cara lain untuk menyimpan nilai awal borang, dan itu ialah menggunakan v-sekali perintah. v-sekali ialah arahan dalam Vue Fungsinya adalah untuk mengikat elemen sekali apabila ia pertama kali terikat, dan kemudian elemen itu tidak akan dikemas kini. Gunakan arahan v-sekali untuk menyimpan nilai awal borang dalam atribut nilai kotak input teks. Seperti yang ditunjukkan di bawah:

<template>
  <div>
    <input type="text" v-model="name" v-once:value="originalName">
    <p>表单是否改变: {{ isDirty }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      name: '' // 创建一个名为name的数据属性
    }
  },
  computed: {
    isDirty() {
      return this.name !== this.$el.querySelector('input').value
    },
    originalName() {
      return this.name // 返回表单的初始值
    }
  }
}
</script>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan arahan v-sekali untuk mengikat atribut nilai elemen input dan menyimpan nilai awal dalam atribut nilai elemen bentuk. Menggunakan nama asal harta terkira, nilai awal boleh dikembalikan kepada harta terkira isDirty untuk pengiraan bagi menentukan sama ada borang telah berubah.

Ringkasan

Dalam Vue, menentukan sama ada borang telah berubah ialah fungsi yang sangat praktikal untuk menggesa pengguna menyimpan pengubahsuaian yang belum disimpan, melumpuhkan atau mendayakan butang simpan, dsb. Vue menyediakan banyak cara untuk mencapai fungsi ini, seperti menggunakan sifat data, sifat yang dikira, sifat jam tangan dan arahan v-sekali. Memilih kaedah yang sesuai bergantung pada keperluan sebenar dan senario tertentu. Tetapi tidak kira kaedah yang digunakan, anda perlu ingat untuk menyimpan nilai awal borang dan mengemas kini status dalam masa untuk menentukan sama ada borang telah berubah.

Atas ialah kandungan terperinci Vue menentukan sama ada borang telah berubah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1671
14
Tutorial PHP
1276
29
Tutorial C#
1256
24
Ekosistem React: Perpustakaan, Alat, dan Amalan Terbaik Ekosistem React: Perpustakaan, Alat, dan Amalan Terbaik Apr 18, 2025 am 12:23 AM

Ekosistem React termasuk perpustakaan pengurusan negeri (seperti redux), perpustakaan penghalaan (seperti reactrouter), perpustakaan komponen UI (seperti bahan-UI), alat ujian (seperti jest), dan alat bangunan (seperti webpack). Alat ini bekerjasama untuk membantu pemaju membangun dan mengekalkan aplikasi dengan cekap, meningkatkan kualiti kod dan kecekapan pembangunan.

Masa Depan React: Trend dan Inovasi dalam Pembangunan Web Masa Depan React: Trend dan Inovasi dalam Pembangunan Web Apr 19, 2025 am 12:22 AM

Masa depan React akan memberi tumpuan kepada pembangunan komponen utama, pengoptimuman prestasi dan integrasi yang mendalam dengan susunan teknologi lain. 1) React akan memudahkan penciptaan dan pengurusan komponen dan mempromosikan perkembangan komponen utama. 2) Pengoptimuman prestasi akan menjadi tumpuan, terutamanya dalam aplikasi besar. 3) React akan disepadukan dengan teknologi seperti GraphQL dan TypeScript untuk meningkatkan pengalaman pembangunan.

Pembangunan Frontend dengan React: Kelebihan dan Teknik Pembangunan Frontend dengan React: Kelebihan dan Teknik Apr 17, 2025 am 12:25 AM

Kelebihan React adalah fleksibiliti dan kecekapannya, yang dicerminkan dalam: 1) Reka bentuk berasaskan komponen meningkatkan kebolehgunaan semula kod; 2) Teknologi DOM Maya mengoptimumkan prestasi, terutamanya apabila mengendalikan banyak kemas kini data; 3) Ekosistem yang kaya menyediakan sejumlah besar perpustakaan dan alat pihak ketiga. Dengan memahami bagaimana React Works dan menggunakan contoh, anda boleh menguasai konsep terasnya dan amalan terbaik untuk membina antara muka pengguna yang cekap dan boleh dipelihara.

React: Kekuatan perpustakaan JavaScript untuk pembangunan web React: Kekuatan perpustakaan JavaScript untuk pembangunan web Apr 18, 2025 am 12:25 AM

React adalah perpustakaan JavaScript yang dibangunkan oleh Meta untuk membina antara muka pengguna, dengan terasnya menjadi pembangunan komponen dan teknologi DOM maya. 1. Komponen dan Pengurusan Negeri: React menguruskan keadaan melalui komponen (fungsi atau kelas) dan cangkuk (seperti UseState), meningkatkan kebolehgunaan semula kod dan penyelenggaraan. 2. DOM maya dan pengoptimuman prestasi: Melalui DOM maya, bereaksi dengan cekap mengemas kini DOM sebenar untuk meningkatkan prestasi. 3. Kitaran Hidup dan Cangkuk: Cangkuk (seperti Useeffect) membolehkan komponen fungsi menguruskan kitaran hayat dan melakukan operasi kesan sampingan. 4. Contoh Penggunaan: Dari Komponen Helloworld Asas ke Pengurusan Negeri Global Lanjutan (USEContext dan

Pembangunan React dan Frontend: Gambaran keseluruhan yang komprehensif Pembangunan React dan Frontend: Gambaran keseluruhan yang komprehensif Apr 18, 2025 am 12:23 AM

React adalah perpustakaan JavaScript yang dibangunkan oleh Facebook untuk membina antara muka pengguna. 1. Ia mengamalkan teknologi DOM komponen dan maya untuk meningkatkan kecekapan dan prestasi pembangunan UI. 2. Konsep teras React termasuk komponenisasi, pengurusan negeri (seperti useState dan useeffect) dan prinsip kerja dom maya. 3. 4. Kesilapan umum seperti melupakan untuk menambah atribut utama atau kemas kini status yang salah boleh didebitkan melalui ReactDevTools dan log. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan react.memo, segmentasi kod dan menyimpan kod yang boleh dibaca dan mengekalkan kebolehpercayaan

Memahami Fungsi Utama React: Perspektif Frontend Memahami Fungsi Utama React: Perspektif Frontend Apr 18, 2025 am 12:15 AM

Fungsi utama React termasuk pemikiran komponen, pengurusan negeri dan dom maya. 1) Idea komponenisasi membolehkan pemisahan UI menjadi bahagian yang boleh diguna semula untuk meningkatkan kebolehbacaan kod dan kebolehkerjaan. 2) Pengurusan Negeri menguruskan data dinamik melalui negeri dan prop, dan perubahan mencetuskan kemas kini UI. 3) Prestasi Pengoptimuman DOM Maya, kemas kini UI melalui pengiraan operasi minimum Replika DOM dalam ingatan.

Kekuatan React dalam HTML: Pembangunan Web Moden Kekuatan React dalam HTML: Pembangunan Web Moden Apr 18, 2025 am 12:22 AM

Penggunaan React dalam HTML meningkatkan kecekapan dan fleksibiliti pembangunan web melalui komponen dan DOM maya. 1) Idea komponen reaksi memecah UI ke dalam unit yang boleh diguna semula untuk memudahkan pengurusan. 2) Prestasi pengoptimuman DOM maya, meminimumkan operasi DOM melalui algoritma yang berbeza. 3) Sintaks JSX membolehkan penulisan HTML dalam JavaScript untuk meningkatkan kecekapan pembangunan. 4) Gunakan cangkuk UseState untuk menguruskan keadaan dan merealisasikan kemas kini kandungan dinamik. 5) Strategi pengoptimuman termasuk menggunakan react.memo dan usecallback untuk mengurangkan rendering yang tidak perlu.

React vs Rangka Kerja Lain: Membandingkan dan Berbeza Pilihan React vs Rangka Kerja Lain: Membandingkan dan Berbeza Pilihan Apr 17, 2025 am 12:23 AM

React adalah perpustakaan JavaScript untuk membina antara muka pengguna, sesuai untuk aplikasi besar dan kompleks. 1. Inti React adalah komponen dan DOM maya, yang meningkatkan prestasi rendering UI. 2. Berbanding dengan Vue, React lebih fleksibel tetapi mempunyai lengkung pembelajaran yang curam, yang sesuai untuk projek besar. 3. Berbanding dengan sudut, bertindak balas lebih ringan, bergantung kepada ekologi komuniti, dan sesuai untuk projek yang memerlukan fleksibiliti.

See all articles