Jadual Kandungan
Analisis reaktif
Vue2's Object.defineProperty
Vue3 menggunakan untuk memantau data perubahan. Berbanding dengan Vue2, ia bukan sahaja menyelesaikan masalah di atas, Terdapat juga kelebihan ini:
Rumah hujung hadapan web View.js Artikel yang menerangkan prinsip kereaktifan dalam Vue secara terperinci

Artikel yang menerangkan prinsip kereaktifan dalam Vue secara terperinci

Feb 13, 2023 pm 07:30 PM
hujung hadapan corak reka bentuk vue.js

Artikel ini akan membantu anda mempelajari Vue dan memperoleh pemahaman yang mendalam tentang prinsip reaktif dalam Vue. Saya harap ia akan membantu anda.

Artikel yang menerangkan prinsip kereaktifan dalam Vue secara terperinci

Artikel ini memperingati pemergian gula sintaksis responsif

Tanpa berlengah lagi, mari kita terus ke intinya Aplikasi dalam pembangunan harian adalah sangat biasa. Berikut adalah contoh mudah:

let a=3
let b=a*10
console.log(b)//30
a=4
console.log(b)//40
Salin selepas log masuk

Pada masa ini kami mahu b=4*10, yang jelas tidak mungkin, walaupun kami menambah di hadapan var hanya akan berlaku 变量提升, dan nilai yang kita berikan tidak akan meningkat.

Pada masa ini, peranan responsif dicerminkan:

import { reactive } from 'vue'

let state = reactive({ a: 3 })
let b = computed(() => state.a * 10)
console.log(b.value) // 30
state.a = 4
console.log(b.value) // 40
Salin selepas log masuk

Hanya 响应式API mudah diperlukan untuk mencapai kesan penjejakan perubahan. [Cadangan berkaitan: tutorial video vuejs, pembangunan bahagian hadapan web]

Analisis reaktif

Malah, Vue3 reactive pada asasnya ialah model terbit-langganan

menjejak kebergantungan data dengan mencipta graf kebergantungan. Graf pergantungan ialah graf yang menerangkan data yang bergantung pada data yang mana. Apabila data berubah, sistem reactive Vue 3 secara automatik mencetuskan kemas kini paparan. Ini kerana ia menjejaki perubahan data dalam graf pergantungan dan mencapainya dengan mengaitkannya dengan kemas kini pada paparan

Di sini saya menyenaraikan kod yang ditunjukkan oleh Youda dalam Vue Master sebagai contoh mudah :

class Dep{
    constructor(value){
        this.subscribers=new Set()
        this._value=value
    }
    get value(){
        this.depend()
        return this._value
    }
    set value(newValue){
        this._value=newValue
        this.notify()
    }
    depend(){
        if(activeEffect){
            this.subscribers.add(activeEffect)
        }
    }
    notify(){
        this.subscribers.forEach(effect=>{
            effect()
        })
    }
}
Salin selepas log masuk

Mari kita analisa kod ini:

  • Tentukan atribut subscribe sebagai senarai pelanggan untuk menyimpan semua pelanggan Fungsi maklumat
  • depend digunakan untuk mengurus kebergantungan, iaitu pembolehubah
  • notify fungsi yang pelanggan bergantung digunakan untuk memberitahu semua pelanggan bahawa nilai pembolehubah telah berubah

Bila nilai pembolehubah berubah, ia secara automatik boleh memberitahu semua pelanggan untuk mengemas kini

Vue2's Object.defineProperty

Malah, dalam tempoh Vue2, responsif telah dilaksanakan oleh Object.defineProperty, tetapi ia telah ditukar kepada Proxy dalam Vue3 Mari kita tunggu dan lihat sebabnya berdasarkan kod sebenar; API reaktif dilaksanakan

function reactive(raw){
    Object.keys(raw).forEach(ket=>{
        const dep=new Dep()
        let value=raw[key]
        
        Object.definProperty(raw,key,{
            get(){
                dep.depend()
                return value
            },
            //当属性发生
            set(newValue){
                value=newValue
                dep.notify()
            }
        })
    })
    //这时候返回的原始对象已经具有响应性
    return raw
}
Salin selepas log masuk
Tetapi kelemahan di sini adalah jelas:

Dalam Vue 2 Dalam .x, objek yang diluluskan akan terus

ditukar

Dalam Vue3, ia akan mengembalikan proksi responsif, tetapi perubahan langsung kepada objek sumber masih tidak bertindak balasVue.observableIni menghasilkan:

Apabila kita
mengaitkan objek, Vue2's gaya reaktif tidak dapat dikesan kerana Vue akan memulakan instance Apabila melakukan penukaran getter/setter pada hartanah, sifat mesti wujud pada objek
    agar Vue menukarnya menjadi
  • 添加或者删除 responsif tidak dapat mengesan. perubahan dalam data daripada
  • tatasusunan
  • 下标和长度
  • Sudah tentu, ini adalah had sejarah Pada masa itu, ES5 hanya boleh memilih
, tetapi dalam versi ES6, terdapat lebih banyak
Pada masa ini, respons Vue Kemudian kami mendapat peningkatan

Object.definPropertyProxyProksi Vue3

Vue3 menggunakan untuk memantau data perubahan. Berbanding dengan Vue2, ia bukan sahaja menyelesaikan masalah di atas, Terdapat juga kelebihan ini:

Proxy

Tidak perlu menggunakan
untuk mencetuskan kereaktifan, yang menjadikan kod kelihatan lebih
    Pengenalan
  • vue.$setPengesanan perubahan tatasusunan Orientasi Penuh menghapuskan syarat sempadan yang tidak sah dalam Vue2
  • Mengurangkan jumlah kod responsif yang ditulis dalam Vue3, yang menjadikan pembangunan kami lebih mudah
  • Mari kita lihat rupa kod sebenar:

Melaksanakan responsif dengan

mengumpul kebergantungan
const reactiveHandles={
    get(target,key,receiver){
        const dep=getDep(target,key)
        dep.depend()
        return Reflect.get(target,key,receiver)
    },
    set(target,key,value,receiver){
        const dep=getDep(target,key)
        const result=Reflect.set(target,key,value,receiver)
        dep.notify()
        return result
    }
}
Salin selepas log masuk
pada objek ialah intipati responsif Vue3

ref

Terdapat pepatah dalam dokumentasi rasmi: Pelbagai batasan akhirnya kerana JavaScript tidak mempunyai mekanisme "rujukan" yang boleh bertindak semua jenis nilai, dan had reaktif ialah :

reactive()

hanya boleh mengendalikan struktur data yang boleh diperhatikan, seperti tatasusunan dan struktur data yang tidak boleh diperhatikan, seperti jenis data primitif, tidak boleh dipantau
    Ia hanya boleh memproses data yang ditakrifkan dalam komponen di mana ia berada dan tidak boleh memproses pembolehubah global
  • pada masa ini,
diperlukan untuk muncul adalah untuk
jenis data asas

dilahirkan untuk mengimbangi kekurangan reaktif Secara ringkasnya, ref lebih sesuai untuk nilai pembolehubah tunggal yang mudah (tetapi dalam pembangunan sebenar, kebanyakan masa,. ref digunakan. HahaharefSebenarnya, ref digunakan , sayang cadangan gula sintaksis responsif telah dibatalkan

(Mempelajari perkongsian video: Tutorial pengenalan Vuejs, Video pengaturcaraan asas)

Atas ialah kandungan terperinci Artikel yang menerangkan prinsip kereaktifan dalam Vue secara terperinci. 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!

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)

Perbezaan antara corak reka bentuk dan corak seni bina dalam rangka kerja Java Perbezaan antara corak reka bentuk dan corak seni bina dalam rangka kerja Java Jun 02, 2024 pm 12:59 PM

Dalam rangka kerja Java, perbezaan antara corak reka bentuk dan corak seni bina ialah corak reka bentuk mentakrifkan penyelesaian abstrak kepada masalah biasa dalam reka bentuk perisian, memfokuskan pada interaksi antara kelas dan objek, seperti corak kilang. Corak seni bina mentakrifkan hubungan antara struktur sistem dan modul, memfokuskan pada organisasi dan interaksi komponen sistem, seperti seni bina berlapis.

Vue.js vs React: Pertimbangan khusus projek Vue.js vs React: Pertimbangan khusus projek Apr 09, 2025 am 12:01 AM

Vue.js sesuai untuk projek kecil dan sederhana dan lelaran yang cepat, sementara React sesuai untuk aplikasi besar dan kompleks. 1) Vue.js mudah digunakan dan sesuai untuk situasi di mana pasukan tidak mencukupi atau skala projek kecil. 2) React mempunyai ekosistem yang lebih kaya dan sesuai untuk projek dengan prestasi tinggi dan keperluan fungsional yang kompleks.

Adakah vue.js sukar belajar? Adakah vue.js sukar belajar? Apr 04, 2025 am 12:02 AM

Vue.js tidak sukar untuk dipelajari, terutamanya bagi pemaju dengan asas JavaScript. 1) Reka bentuk progresif dan sistem responsif memudahkan proses pembangunan. 2) Pembangunan berasaskan komponen menjadikan pengurusan kod lebih cekap. 3) Contoh penggunaan menunjukkan penggunaan asas dan lanjutan. 4) Kesilapan biasa boleh disahpepijat melalui Vuedevtools. 5) Pengoptimuman prestasi dan amalan terbaik, seperti menggunakan V-IF/V-Show dan atribut utama, boleh meningkatkan kecekapan aplikasi.

Adakah Vue digunakan untuk frontend atau backend? Adakah Vue digunakan untuk frontend atau backend? Apr 03, 2025 am 12:07 AM

Vue.js terutamanya digunakan untuk pembangunan front-end. 1) Ia adalah rangka kerja JavaScript yang ringan dan fleksibel yang difokuskan pada membina antara muka pengguna dan aplikasi satu halaman. 2) Inti Vue.js adalah sistem data responsifnya, dan pandangannya dikemas kini secara automatik apabila data berubah. 3) Ia menyokong pembangunan komponen, dan UI boleh dibahagikan kepada komponen bebas dan boleh diguna semula.

Analisis Corak Penghias dalam Corak Reka Bentuk Java Analisis Corak Penghias dalam Corak Reka Bentuk Java May 09, 2024 pm 03:12 PM

Corak penghias ialah corak reka bentuk struktur yang membolehkan penambahan dinamik fungsi objek tanpa mengubahsuai kelas asal. Ia dilaksanakan melalui kerjasama komponen abstrak, komponen konkrit, penghias abstrak dan penghias konkrit, dan boleh mengembangkan fungsi kelas secara fleksibel untuk memenuhi keperluan yang berubah-ubah. Dalam contoh ini, penghias susu dan mocha ditambahkan pada Espresso untuk jumlah harga $2.29, menunjukkan kuasa corak penghias dalam mengubah suai gelagat objek secara dinamik.

Corak Reka Bentuk PHP: Pembangunan Dipacu Ujian dalam Amalan Corak Reka Bentuk PHP: Pembangunan Dipacu Ujian dalam Amalan Jun 03, 2024 pm 02:14 PM

TDD digunakan untuk menulis kod PHP berkualiti tinggi Langkah-langkahnya termasuk: menulis kes ujian, menerangkan fungsi yang diharapkan dan menjadikannya gagal. Tulis kod supaya hanya kes ujian lulus tanpa pengoptimuman yang berlebihan atau reka bentuk terperinci. Selepas kes ujian lulus, optimumkan dan faktorkan semula kod untuk meningkatkan kebolehbacaan, kebolehselenggaraan dan kebolehskalaan.

Aplikasi corak reka bentuk dalam rangka kerja Guice Aplikasi corak reka bentuk dalam rangka kerja Guice Jun 02, 2024 pm 10:49 PM

Rangka kerja Guice menggunakan beberapa corak reka bentuk, termasuk: Corak Singleton: memastikan kelas hanya mempunyai satu tika melalui anotasi @Singleton. Corak kaedah kilang: Cipta kaedah kilang melalui anotasi @Provides dan dapatkan contoh objek semasa suntikan pergantungan. Mod strategi: Bungkus algoritma ke dalam kelas strategi yang berbeza dan nyatakan strategi khusus melalui anotasi @Named.

Apakah kelebihan dan kekurangan menggunakan corak reka bentuk dalam rangka kerja java? Apakah kelebihan dan kekurangan menggunakan corak reka bentuk dalam rangka kerja java? Jun 01, 2024 pm 02:13 PM

Kelebihan menggunakan corak reka bentuk dalam rangka kerja Java termasuk: kebolehbacaan kod yang dipertingkatkan, kebolehselenggaraan dan kebolehskalaan. Kelemahan termasuk kerumitan, overhed prestasi dan keluk pembelajaran yang curam akibat penggunaan berlebihan. Kes praktikal: Mod proksi digunakan untuk malas memuatkan objek. Gunakan corak reka bentuk dengan bijak untuk memanfaatkan kelebihannya dan meminimumkan kelemahannya.

See all articles