Vue.js ialah rangka kerja JavaScript sumber terbuka yang popular untuk membina antara muka pengguna. Untuk pembangun web, Vue.js boleh menjadi sangat cekap untuk mencipta aplikasi satu halaman serta komponen untuk aplikasi berbilang halaman. Walau bagaimanapun, kadangkala anda mungkin menghadapi beberapa masalah apabila menggunakan kebergantungan dalam Vue.js. Artikel ini akan memperkenalkan cara menyelesaikan masalah yang mengubah suai kebergantungan dalam Vue.js tidak berkuat kuasa.
Salah satu ciri teras Vue.js ialah sistem reaktifnya. Mana-mana objek yang boleh diperhatikan (data dalam komponen Vue.js) boleh menambah kebergantungan. Kebergantungan ini dikemas kini secara automatik apabila objek berubah. Ini adalah salah satu sebab mengapa Vue.js sangat cekap mengemas kini aplikasi.
Namun, kadangkala apabila menggunakan Vue.js, anda mungkin menghadapi masalah pelik, iaitu selepas mengubah suai kebergantungan, nilai kebergantungan tidak dikemas kini. Punca masalah ini ialah Vue.js mempunyai beberapa had apabila melibatkan pengumpulan pergantungan Ia hanya boleh mengesan sifat yang wujud apabila komponen Vue.js dimulakan. Jika anda menambah sifat baharu selepas komponen dibuat, anda perlu memberitahu Vue.js secara manual untuk mengemas kini kebergantungan.
Untuk menyelesaikan masalah kebergantungan yang diubah suai tidak dikemas kini dalam Vue.js, anda boleh menggunakan kaedah berikut:
Kaedah Vue.set atau this.$set boleh menetapkan sifat dalam komponen sebagai sifat responsif, supaya ia boleh berkuat kuasa apabila kebergantungan diubah suai. Apabila mengubah suai kebergantungan, gunakan sintaks berikut:
Vue.set(object, propertyName, value) this.$set(object, propertyName, value)
di mana objek ialah objek yang akan diubah suai, propertyName ialah nama sifat yang akan diubah suai dan nilai ialah nilai sifat yang akan ditetapkan.
Menggunakan rujukan pembolehubah membolehkan Vue.js memantau perubahan dalam pembolehubah dan dengan itu mengemas kini kebergantungan komponen dengan betul. Cara untuk mengubah suai kebergantungan adalah dengan memberikan nilai kepada pembolehubah dan kemudian menggunakan pembolehubah dalam komponen:
<script> export default { data() { return { user: { name: 'Tom' }, // 在组件中使用变量 $userName,而不是 user.name $userName: '' } }, mounted() { // 在 mounted 阶段更新 $userName 的值 this.$userName = this.user.name } } </script>
Atribut yang dikira ialah cara yang cekap untuk mengemas kini kebergantungan. Atribut yang dikira boleh mengira nilai atribut secara dinamik berdasarkan nilai pembolehubah lain dan mengemas kini kebergantungan secara automatik. Dengan menggunakan atribut yang dikira, tentukan sifat terkira dalam komponen dengan nilai bergantung sebagai kebergantungannya:
<script> export default { data() { return { user: { name: 'Tom' }, } }, computed: { userName() { return this.user.name } } } </script>
Gunakan sifat terkira $userName dalam komponen dan bukannya nama pengguna:
<template> <div>{{ $userName }}</div> </template>
Atribut jam tangan boleh memantau perubahan dalam pembolehubah untuk mengesan perubahan kebergantungan. Gunakan atribut jam tangan untuk mentakrifkan pendengar dalam komponen untuk mendengar acara yang bergantung pada perubahan:
<script> export default { data() { return { user: { name: 'Tom' }, $userName: '' } }, watch: { 'user.name'(newValue) { // 如果 user.name 发生变化,将会更新 $userName 的值 this.$userName = newValue } }, mounted() { // 在 mounted 阶段更新 $userName 的值 this.$userName = this.user.name } } </script>
Gunakan pembolehubah $userName dalam komponen dan bukannya user.name:
<template> <div>{{ $userName }}</div> </template>
Vue.js menyediakan sistem reaktif yang berkuasa yang membolehkan pembangun membina aplikasi dengan cekap. Apabila menggunakan Vue.js, ia boleh menjadi isu yang mengecewakan apabila menukar kebergantungan tidak berkuat kuasa. Dalam artikel ini, kami membincangkan beberapa penyelesaian, termasuk menggunakan kaedah Vue.set atau this.$set, menggunakan rujukan pembolehubah, menggunakan sifat yang dikira dan menggunakan sifat jam tangan. Kami berharap kaedah ini dapat membantu anda menyelesaikan masalah kebergantungan yang diubah suai tidak berkuat kuasa dalam Vue.js.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika pengubahsuaian kebergantungan Vue tidak berkuat kuasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!