Rumah  >  Soal Jawab  >  teks badan

Gunakan Vue dan axios untuk mengemas kini data tanpa memuat semula halaman

<p>Saya mempunyai halaman dengan 2 tab (Soalan dan Data) dibuat pada Vue dan Axios. Dalam tab pertama saya mengisi borang dan menyerahkan - butang simpan <strong>v-on:click="save"</strong>. </p> <pre class="brush:php;toolbar:false;">save: function() { aksios({ kaedah: 'tampalan', url: url, data: ini.data }) .then(fungsi (tindak balas) { ini.data = respon.data; }</pre> <p>Dalam tab kedua (Data) saya mempunyai senarai data yang disimpan: </p> <pre class="brush:php;toolbar:false;">mounted() { aksios .get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}') .then(respon => (this.data= response.data.results)) }</pre> <p>Sekarang apabila saya menukar jawapan dalam tab Soalan, senarai dalam tab Data akan berubah secara automatik. Jika saya memuat semula halaman ia berubah - Mounted() berfungsi. Saya cuba mencipta fungsi <strong>updateList()</strong> <pre class="brush:php;toolbar:false;">updateList: function() { aksios .get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}') .then(respon => (this.data= response.data.results)) }</pre> <p>dan tambahkannya pada fungsi <strong>save()</strong> <pre class="brush:php;toolbar:false;">save: function() { aksios({ kaedah: 'tampalan', url: url, data: ini.data }) .then(fungsi (tindak balas) { ini.data = respon.data; this.updateList(); }</pre> <p>Masalahnya ialah cara ini berfungsi untuk kali kedua (kadangkala ia berkesan dan kadangkala tidak). Jadi saya hanya menambah <strong>location.reload();</strong> kepada <strong>save()</strong> Adakah mungkin untuk mengemas kini senarai data tanpa memuat semula halaman? Apa yang saya buat salah dengan fungsi <strong>updateList()</strong> </p>
P粉614840363P粉614840363445 hari yang lalu534

membalas semua(1)saya akan balas

  • P粉949267121

    P粉9492671212023-08-26 11:52:00

    Pada pendapat saya, anda harus menggunakan vuex dan pengambilnya.

    Dengan cara ini, anda hanya mempunyai satu permintaan di semua aplikasi anda dan data dimuat semula secara automatik setelah status dikemas kini.

    Anda kemudian boleh mengakses data menggunakan 计算property yang akan dipaparkan semula secara automatik apabila keadaan dikemas kini.


    Berikut ialah contoh penggunaan berbilang tab: https://codesandbox.io/s/vuex-axios-demo-forked-m0cqe4?file=/src/App.vue

    Dalam contoh ini, saya memuatkan maklumat siaran melalui API JsonPlaceHolder.

    Hantar semula borang setiap masa (menggunakan fungsi). Panggil operasi kedai dan kemudian kemas kini keadaan, sekali gus mencetuskan pengambil untuk memaparkan semula data.

    Nota: Saya memuatkan siaran pertama ke Mounted dengan nilai lalai 1.

    balas
    0
  • Batalbalas