Rumah >hujung hadapan web >View.js >Apakah yang perlu saya lakukan jika Vue menambah data tetapi tidak mengemas kininya?
Penyelesaian kepada masalah yang Vue menambah data tetapi tidak mengemas kini: 1. Gunakan "this.$set(target, key, value);" atau "Vue.set(target, key, value)". tambah atribut; 2. Gunakan berbilang slot secara dinamik dalam fungsi render dan hantarkan nilai ke slot.
Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Vue 3, komputer Dell G3.
Apakah yang perlu saya lakukan jika vue menambah data tetapi tidak mengemas kini?
Selesaikan masalah data vue tidak dikemas kini dalam masa nyata (data telah berubah, tetapi data tidak dikemas kini dalam masa nyata)
1 . Dalam proses pembangunan kami menggunakan vue , anda mungkin menghadapi situasi:
Apabila contoh vue dijana, apabila data ditetapkan semula, kadangkala ia tidak akan dikemas kini secara automatik kepada paparan;
Kepada objek responsif Tambahkan sifat padanya dan pastikan sifat baharu ini juga responsif dan mencetuskan kemas kini paparan. Ia mesti digunakan untuk menambah atribut baharu pada objek responsif, kerana Vue tidak dapat mengesan atribut baharu biasa, dan anda perlu menggunakan kaedah terbina dalam vue 2. Vue.set() secara responsif menambah dan mengubah suai dataPada ketika ini, kita perlu mengetahui parameter yang diperlukan oleh Vue.set() API Rasmi: https://cn.vuejs.org/v2/api/#Vue-setKaedah panggilan: Vue .set( sasaran, kunci, nilai ) atau ini.$set(sasaran, kunci, nilai);sasaran: sumber data yang akan ditukar (boleh menjadi objek atau tatasusunan)kunci: Data khusus untuk ditukar nilai: nilai yang ditetapkan semula, panggilan: ini.$set(sasaran, kunci, nilai);Pengetahuan tambahan: vue Render scopedSlots Penggunaan lalai umum slot dalam memaparkan adalah seperti berikut: this.$slots.default tidak mempunyai nama untuk penggunaan 58cb293b8600657fad49ec2c8d37b472 Jika anda ingin menggunakan beberapa slot. Slot perlu dinamakan secara unik. Gunakan berbilang slot secara dinamik dalam fungsi pemaparan dan hantar nilai ke slot1 Logik perniagaan saya: menggunakan tiga komponen, . Komponen A memanggil komponen B, komponen B memanggil komponen C, dan komponen C ialah komponen render terkapsulnya sendiri. Komponen A berharap dapat memasukkan slot tersuainya sendiri ke dalam komponen C. Komponen C menghasilkan kandungan tersuai dan menghantar nilai komponen C kepada komponen B dan komponen A. Komponen B melakukan operasi pada komponen C. Tahap yang lebih besar daripada enkapsulasi Satu komponen memanggil komponen B<index-grid> <div slot="name" slot-scope="field" class="check-link" @click="rowLinkClick" > <span>{{ field.field.rowData.name }}</span> </div> </index-grid>Satu komponen merujuk kepada komponen B, slot-skop menerima nilai solt yang dihantar daripada komponen B, slot="name ", adalah untuk menamakan slot; Fungsi pemaparan komponen C dipanggil dalam komponen B
<sub-grid ref="indexGridSub"> <span v-for="(item, index) in fields" :key="index" slot="name" slot-scope="field" > <slot name="name" :field="field"></slot> </span> </sub-grid>Slot dalam rentang komponen komponen B ialah nilai dinamik, yang sama dengan slot dalam komponen A. nilai untuk menerima slot tersuai daripada komponen A. medan ialah nilai yang diluluskan daripada komponen C Komponen C ialah fungsi pemaparan
h( "td", { style: { width: field.width + "px" }, class: { borderRight }, // 作用域插槽格式 // { name: props => VNode | Array<VNode> } scopedSlots: this.$scopedSlots.name, // 如果组件是其他组件的子组件,需为插槽指定名称 slot: 'name' }, this.$scopedSlots.name({ field: field, rowData: rowData, }) );C nilai yang dilepaskan oleh komponen ialah objek {field: '', rowData: ''}Pembelajaran yang disyorkan: "
tutorial video vue.js"
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika Vue menambah data tetapi tidak mengemas kininya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!