Rumah  >  Artikel  >  hujung hadapan web  >  Apakah yang perlu saya lakukan jika Vue menambah data tetapi tidak mengemas kininya?

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

藏色散人
藏色散人asal
2022-12-22 09:34:403791semak imbas

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 58cb293b8600657fad49ec2c8d37b472 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>
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: &#39;name&#39;
     },
     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!

Kenyataan:
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