Dalam alam Vue.js, kebingungan yang pelik timbul apabila cuba mengakses "ini" dalam cangkuk kitaran hayat dan sifat yang dikira. Perkara yang mungkin kelihatan seperti rujukan mudah kepada contoh Vue sering membingungkan pembangun, yang membawa kepada ralat yang membingungkan dan nilai yang tidak ditentukan.
Menyelam ke dalam Jurang Tidak Tertakrif
Apabila menggunakan fungsi anak panah () => {} dalam cangkuk kitar hayat seperti sifat "dilekapkan" atau dikira seperti "foo," nilai "ini" menjadi sukar difahami, menyebabkan anda melihat "tidak ditentukan" yang mengecewakan pada konsol.
The Penyebab: Fungsi Anak Panah dan Konteks Terikat
Fungsi anak panah mewarisi skop leksikalnya, bermakna mereka berpegang pada ikatan "ini" dari konteks sekeliling. Dalam kes komponen Vue.js, konteks ini berbeza daripada tika Vue itu sendiri. Akibatnya, "ini" menilai kepada tidak ditentukan apabila merujuknya dari dalam fungsi anak panah yang ditakrifkan dalam kaedah komponen.
Merangkul Fungsi Tradisional
Untuk membetulkan isu ini, pilih tradisional Fungsi JavaScript atau singkatan fungsi ECMAScript 5. Pendekatan ini mengikat "ini" pada konteks yang dilampirkan, yang dalam kes komponen Vue.js ialah tika Vue itu sendiri.
Dibalut dalam Fungsi Biasa:
mounted: function () { console.log(this); // Logs the Vue instance }
Shorthand Ringkas Sintaks:
mounted() { console.log(this); // Still logs the Vue instance }
Kesimpulan
Memahami nuansa fungsi anak panah dan pengikatan "ini" adalah penting untuk memahami kerja dalaman Vue. komponen js. Dengan menggunakan sintaks fungsi biasa atau singkatan, anda boleh mengakses "ini" dengan yakin dalam konteks tika Vue anda, dengan berkesan menghapuskan ralat tidak jelas yang menjengkelkan itu daripada ufuk pengekodan anda.
Atas ialah kandungan terperinci Mengapakah 'ini' Menjadi Sukar dalam Cangkuk Kitaran Hayat Vue.js dan Hartanah Dikira?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!