Jadual Kandungan
1. Memahami pengikatan dua hala
2 >Vue .js menyediakan arahan model-v untuk melaksanakan pengikatan dua hala data. Arahan model v boleh digunakan untuk mengikat nilai untuk membentuk elemen dan komponen.
Selain elemen bentuk, kami juga boleh menggunakan komponen tersuai untuk mencapai pengikatan dua hala data.
Vue.js menggunakan rampasan data untuk mencapai pengikatan data dua hala. Ia merampas kaedah setter dan getter bagi sifat objek dengan menggunakan kaedah Object.defineProperty() dalam ES5. Dengan cara ini, apabila sifat objek berubah, Vue.js boleh mendengar perubahan dan menyegerakkan perubahan pada paparan.
Vue.js menggunakan enjin templat untuk menghuraikan templat DOM dan menjana DOM maya. DOM maya ialah objek JavaScript ringan yang digunakan untuk menerangkan pokok DOM sebenar. Vue.js melaksanakan pengikatan dua hala data dengan beroperasi pada DOM maya.
Prinsip teras Vue.js untuk melaksanakan pengikatan dua hala ialah menggunakan kaedah Object.defineProperty() untuk memantau perubahan data. Kaedah ini menerima tiga parameter iaitu objek, nama atribut dan deskriptor atribut. Kita boleh menggunakan kaedah ini untuk mentakrifkan harta dan melakukan beberapa operasi dalam getter dan setter harta itu.
Rumah hujung hadapan web View.js Penjelasan terperinci tentang cara melaksanakan pengikatan dua hala data menggunakan Vue

Penjelasan terperinci tentang cara melaksanakan pengikatan dua hala data menggunakan Vue

Apr 19, 2023 pm 06:49 PM
vue.js

Dalam Vue.js, pengikatan data dua hala ialah ciri yang sangat berkuasa yang boleh memastikan data dan paparan disegerakkan, menjadikannya lebih mudah untuk pembangun memanipulasi data. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan pengikatan dua hala data dengan Vue.js.

Penjelasan terperinci tentang cara melaksanakan pengikatan dua hala data menggunakan Vue

1. Memahami pengikatan dua hala

Pertama, kita perlu memahami prinsip pengikatan dua hala. Dalam Vue.js, data dan paparan disambungkan melalui ViewModel (model paparan). Apabila data berubah, ViewModel mengemas kini paparan secara automatik. Apabila paparan berubah, ViewModel akan mengemas kini data secara automatik. [Cadangan berkaitan: tutorial video vuejs, pembangunan bahagian hadapan web]

2 >Vue .js menyediakan arahan model-v untuk melaksanakan pengikatan dua hala data. Arahan model v boleh digunakan untuk mengikat nilai untuk membentuk elemen dan komponen.

Sebagai contoh, menggunakan arahan model v pada elemen input boleh mencapai pengikatan dua hala data:

Dalam contoh di atas, kami menggunakan elemen input untuk mengikat mesej atribut, gunakan {{ mesej }} untuk memaparkan data terikat.

<template>
  <div>
    <input type="text" v-model="message">
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: &#39;Hello, Vue.js!&#39;
    }
  }
}
</script>
Salin selepas log masuk
Apabila kita memasukkan teks, data dan paparan akan dikemas kini secara automatik serentak. Beginilah cara arahan model-v melaksanakan pengikatan data dua hala.

3. Gunakan komponen tersuai untuk mencapai pengikatan dua hala

Selain elemen bentuk, kami juga boleh menggunakan komponen tersuai untuk mencapai pengikatan dua hala data.

Pertama, kita perlu menentukan komponen tersuai dan mengikat data menggunakan arahan v-model. Kemudian, kita perlu mentakrifkan nilai prop bernama dalam komponen dan menggunakan kaedah $emit() dalam komponen untuk mencetuskan peristiwa bernama input. Dengan cara ini, anda boleh menggunakan arahan model-v dalam komponen induk untuk mengikat nilai komponen tersuai.

Sebagai contoh, berikut ialah komponen kotak input nombor tersuai:

Dalam contoh di atas, kami menggunakan elemen input untuk mengikat atribut nilai, dan apabila memasukkan peristiwa bernama input dicetuskan menggunakan kaedah $emit().

<template>
  <div>
    <input type="number" :value="value" @input="$emit(&#39;input&#39;, $event.target.value)">
  </div>
</template>

<script>
export default {
  props: {
    value: {
      type: Number,
      default: 0
    }
  }
}
</script>
Salin selepas log masuk
Kini, kita boleh menggunakan arahan model v dalam komponen induk untuk mengikat nilai komponen tersuai:

Dalam pembangunan bahagian hadapan, pengikatan dua hala data adalah keperluan yang sangat biasa. Sebagai rangka kerja JavaScript yang popular, Vue.js menyediakan cara yang sangat mudah untuk mencapai pengikatan dua hala data. Artikel ini akan memperkenalkan cara Vue.js melaksanakan pengikatan dua hala data.

<template>
  <div>
    <custom-input v-model="count"></custom-input>
    <p>Count: {{ count }}</p>
  </div>
</template>

<script>
import CustomInput from &#39;./CustomInput.vue&#39;

export default {
  components: {
    CustomInput
  },
  data() {
    return {
      count: 0
    }
  }
}
</script>
Salin selepas log masuk

4. Rampasan data

Vue.js menggunakan rampasan data untuk mencapai pengikatan data dua hala. Ia merampas kaedah setter dan getter bagi sifat objek dengan menggunakan kaedah Object.defineProperty() dalam ES5. Dengan cara ini, apabila sifat objek berubah, Vue.js boleh mendengar perubahan dan menyegerakkan perubahan pada paparan.

Sebagai contoh, kita boleh mentakrifkan kelas bernama Person dan kemudian merampas sifatnya melalui kaedah Object.defineProperty():

Dalam kod di atas, kita lulus Object.defineProperty( ) kaedah untuk merampas nama dan atribut umur kelas Orang. Apabila kita menetapkan nilai pada atribut nama objek orang, kaedah penetap dicetuskan dan 'nama tetapan' adalah output Apabila kita membaca atribut nama objek orang, kaedah getter dicetuskan dan 'mendapatkan nama' output dan _name dikembalikan Nilai atribut.

class Person {
  constructor(name, age) {
    this._name = name
    this._age = age
  }

  get name() {
    return this._name
  }

  set name(name) {
    this._name = name
  }

  get age() {
    return this._age
  }

  set age(age) {
    this._age = age
  }
}

let person = new Person(&#39;Tom&#39;, 18)

Object.defineProperty(person, &#39;name&#39;, {
  get() {
    console.log(&#39;getting name&#39;)
    return this._name
  },
  set(name) {
    console.log(&#39;setting name&#39;)
    this._name = name
  }
})

Object.defineProperty(person, &#39;age&#39;, {
  get() {
    console.log(&#39;getting age&#39;)
    return this._age
  },
  set(age) {
    console.log(&#39;setting age&#39;)
    this._age = age
  }
})

person.name = &#39;Jerry&#39;
console.log(person.name)
Salin selepas log masuk

5. Enjin templat

Vue.js menggunakan enjin templat untuk menghuraikan templat DOM dan menjana DOM maya. DOM maya ialah objek JavaScript ringan yang digunakan untuk menerangkan pokok DOM sebenar. Vue.js melaksanakan pengikatan dua hala data dengan beroperasi pada DOM maya.

Sebagai contoh, kita boleh mentakrifkan objek yang mengandungi atribut nama dan umur serta menggunakan enjin templat Vue.js untuk memaparkannya pada halaman:

<div id="app">
  <p>姓名:<input v-model="person.name"></p>
  <p>年龄:<input v-model="person.age"></p>
  <p>您的姓名是:{{ person.name }}</p>
  <p>您的年龄是:{{ person.age }}</p>
</div>
Salin selepas log masuk
6 .Penjelasan terperinci Object.defineProperty()
const app = new Vue({
  el: &#39;#app&#39;,
  data: {
    person: {
      name: &#39;Tom&#39;,
      age: 18
    }
  }
})
Salin selepas log masuk

Prinsip teras Vue.js untuk melaksanakan pengikatan dua hala ialah menggunakan kaedah Object.defineProperty() untuk memantau perubahan data. Kaedah ini menerima tiga parameter iaitu objek, nama atribut dan deskriptor atribut. Kita boleh menggunakan kaedah ini untuk mentakrifkan harta dan melakukan beberapa operasi dalam getter dan setter harta itu.

Langkah-langkah untuk melaksanakan pengikatan dua hala dalam Vue.js adalah seperti berikut:

Buat contoh Vue dan tentukan objek data yang mengandungi data yang memerlukan pengikatan dua hala . Contohnya:

Dalam HTML, pengikatan dua hala data dicapai dengan menggunakan arahan model-v. Contohnya:
javascriptCopy code
var vm = new Vue({
  data: {
    message: &#39;&#39;
  }
})
Salin selepas log masuk
Dalam contoh Vue, gunakan kaedah Object.defineProperty() untuk memantau perubahan dalam sifat mesej dalam objek data, seperti berikut:
htmlCopy code
<input type="text" v-model="message">
Salin selepas log masuk
  1. Dalam kod di atas, kami menggunakan pembolehubah _message bermula dengan garis bawah untuk menyimpan data sebenar. Dalam getter dan setter, kami mendapat dan menetapkan data dengan mengakses _message, dan kami boleh melakukan beberapa operasi dalam setter.

另外,在 Vue.js 中,我们还可以使用 watch方法来监听数据的变化。watch 方法来监听数据的变化。watch 方法接收两个参数,第一个参数是需要监听的属性,第二个参数是回调函数,回调函数会在数据变化时执行。

下面是一个完整的 Vue.js 双向绑定的示例代码:

<div id="app">
  <input type="text" v-model="message">
  <p>您输入的内容是:{{ message }}</p>
</div>
Salin selepas log masuk
var vm = new Vue({
  el: &#39;#app&#39;,
  data: {
    message: &#39;&#39;
  }
})

Object.defineProperty(vm, &#39;message&#39;, {
  get: function () {
    return this._message
  },
  set: function (newValue) {
    this._message = newValue
    console.log(&#39;您输入的内容是:&#39; + this._message)
  }
})
Salin selepas log masuk

在上面的代码中,我们创建了一个 Vue 实例,并且使用 v-model 指令来实现数据的双向绑定。然后,我们使用 Object.defineProperty() 方法来监听数据的变化,并且在 setter 中输出数据到控制台。

通过上面的代码示例,我们可以看到 Vue.js 实现数据的双向绑定非常简单,而且使用起来也非常方便。

(学习视频分享:vuejs入门教程编程基础视频

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara melaksanakan pengikatan dua hala data menggunakan Vue. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

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)

Perbincangan mendalam tentang cara vite menghurai fail .env Perbincangan mendalam tentang cara vite menghurai fail .env Jan 24, 2023 am 05:30 AM

Apabila menggunakan rangka kerja Vue untuk membangunkan projek bahagian hadapan, kami akan menggunakan berbilang persekitaran apabila digunakan Selalunya nama domain antara muka yang dipanggil oleh pembangunan, ujian dan persekitaran dalam talian adalah berbeza. Bagaimanakah kita boleh membuat perbezaan? Iaitu menggunakan pembolehubah dan corak persekitaran.

Penjelasan grafik terperinci tentang cara mengintegrasikan editor kod Ace dalam projek Vue Penjelasan grafik terperinci tentang cara mengintegrasikan editor kod Ace dalam projek Vue Apr 24, 2023 am 10:52 AM

Ace ialah editor kod boleh terbenam yang ditulis dalam JavaScript. Ia sepadan dengan fungsi dan prestasi penyunting asli seperti Sublime, Vim dan TextMate. Ia boleh dibenamkan dengan mudah ke dalam mana-mana halaman web dan aplikasi JavaScript. Ace dikekalkan sebagai editor utama untuk Cloud9 IDE dan merupakan pengganti kepada projek Mozilla Skywriter (Bespin).

Apakah perbezaan antara komponenisasi dan modularisasi dalam vue Apakah perbezaan antara komponenisasi dan modularisasi dalam vue Dec 15, 2022 pm 12:54 PM

Perbezaan antara komponenisasi dan modularisasi: Modularisasi dibahagikan dari perspektif logik kod; ia memudahkan pembangunan berlapis kod dan memastikan bahawa fungsi setiap modul berfungsi adalah konsisten. Pengkomponenan adalah perancangan dari sudut antara muka UI pemkomponenan bahagian hadapan memudahkan penggunaan semula komponen UI.

Mari kita bercakap secara mendalam tentang reactive() dalam vue3 Mari kita bercakap secara mendalam tentang reactive() dalam vue3 Jan 06, 2023 pm 09:21 PM

Kata Pengantar: Dalam pembangunan vue3, reaktif menyediakan kaedah untuk melaksanakan data responsif. Ini adalah API yang kerap digunakan dalam pembangunan harian. Dalam artikel ini, penulis akan meneroka mekanisme operasi dalamannya.

Terokai cara menulis ujian unit dalam Vue3 Terokai cara menulis ujian unit dalam Vue3 Apr 25, 2023 pm 07:41 PM

Vue.js telah menjadi rangka kerja yang sangat popular dalam pembangunan bahagian hadapan hari ini. Memandangkan Vue.js terus berkembang, ujian unit menjadi semakin penting. Hari ini kita akan meneroka cara menulis ujian unit dalam Vue.js 3 dan menyediakan beberapa amalan terbaik serta masalah dan penyelesaian biasa.

Analisis ringkas tentang cara mengendalikan pengecualian dalam komponen dinamik Vue3 Analisis ringkas tentang cara mengendalikan pengecualian dalam komponen dinamik Vue3 Dec 02, 2022 pm 09:11 PM

Bagaimana untuk mengendalikan pengecualian dalam komponen dinamik Vue3? Artikel berikut akan membincangkan kaedah pengendalian pengecualian komponen dinamik Vue3 Saya harap ia akan membantu semua orang.

Perbandingan mudah sintaks JSX dan sintaks templat dalam Vue (analisis kelebihan dan kekurangan) Perbandingan mudah sintaks JSX dan sintaks templat dalam Vue (analisis kelebihan dan kekurangan) Mar 23, 2023 pm 07:53 PM

Dalam Vue.js, pembangun boleh menggunakan dua sintaks berbeza untuk mencipta antara muka pengguna: sintaks JSX dan sintaks templat. Kedua-dua sintaks mempunyai kelebihan dan kekurangannya sendiri Mari kita bincangkan perbezaan, kelebihan dan kekurangannya.

Analisis ringkas tentang cara vue melaksanakan muat naik menghiris fail Analisis ringkas tentang cara vue melaksanakan muat naik menghiris fail Mar 24, 2023 pm 07:40 PM

Dalam proses projek pembangunan sebenar, kadangkala perlu memuat naik fail yang agak besar, dan kemudian muat naik akan menjadi agak perlahan, jadi latar belakang mungkin memerlukan bahagian hadapan untuk memuat naik hirisan fail Sebagai contoh, 1 A aliran fail gigabait dipotong kepada beberapa aliran fail kecil, dan kemudian antara muka diminta untuk menghantar aliran fail kecil masing-masing.

See all articles