Rumah > hujung hadapan web > View.js > teks badan

Apakah yang perlu saya lakukan jika Vue menambah data tetapi tidak mengemas kininya?

藏色散人
Lepaskan: 2022-12-22 09:34:40
asal
3857 orang telah melayarinya

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.

Apakah yang perlu saya lakukan jika Vue menambah data tetapi tidak mengemas kininya?

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 data

Pada ketika ini, kita perlu mengetahui parameter yang diperlukan oleh Vue.set() API Rasmi: https://cn.vuejs.org/v2/api/#Vue-set

Kaedah 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 Jika anda ingin menggunakan beberapa slot. Slot perlu dinamakan secara unik.

Gunakan berbilang slot secara dinamik dalam fungsi pemaparan dan hantar nilai ke slot

1 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>
Salin selepas log masuk
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>
Salin selepas log masuk
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: &#39;name&#39;
     },
     this.$scopedSlots.name({
      field: field,
      rowData: rowData,
     })
    );
Salin selepas log masuk
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!

Label berkaitan:
vue
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan