Vue: Vue tidak memanggil pengamat saat Anda mengubah prop di beforeDestroy

Dibuat pada 23 Mei 2018  ·  3Komentar  ·  Sumber: vuejs/vue

Versi: kapan

2.5.16

Tautan reproduksi

https://jsfiddle.net/86s8qufj/

Langkah-langkah untuk mereproduksi

  1. Buka tautan reproduksi
  2. Buka konsol
  3. Klik untuk tombol "Toggle TestComponent".
    Ini membuat TestComponent untuk Anda.
  4. Cobalah untuk mengubah sesuatu dalam input. Anda dapat melihat 'In testInfo watcher' di konsol, yang berarti testInfo watcher telah menelepon.
  5. Klik untuk tombol "Toggle TestComponent" lagi.
    Ini menghancurkan TestComponent.
    Di kait beforeDestroy saya mengubah properti 'testInfo'.
    Tetapi Anda hanya dapat melihat 'In beforeDestroy' di konsol alih-alih 'In beforeDestroy' dan 'In testInfo watcher'.

Apa yang diharapkan?

Saya berharap bahwa pengamat untuk properti 'testInfo' akan dipanggil ketika saya mengubahnya di kait beforeDestory.

Apa yang sebenarnya terjadi?

Saya mengubah properti 'testInfo' di kait beforeDestroy, tetapi pengamat tidak menelepon.

Komentar yang paling membantu

Saya akan mengatakan akan lebih baik untuk menyebutkannya dalam dokumentasi - karena sekarang ada "Dipanggil tepat sebelum instance Vue dihancurkan. Pada tahap ini instance masih berfungsi penuh."

Semua 3 komentar

Juga jika Anda mencoba login testInfo di hook yang hancur - Anda akan melihat nilai baru. Tapi Object itu harus dihancurkan....

beforeDestroy terjadi tepat sebelum merobohkan instance Vue, jadi wajar bagi pengamat untuk tidak memicu karena mereka akan memicu setelah instance dihancurkan (membuat sebagian besar fungsi pengamat tidak valid).
Anda harus memanggil pengamat sendiri di hook beforeDestroy alih-alih mengubah data

Saya akan mengatakan akan lebih baik untuk menyebutkannya dalam dokumentasi - karena sekarang ada "Dipanggil tepat sebelum instance Vue dihancurkan. Pada tahap ini instance masih berfungsi penuh."

Apakah halaman ini membantu?
0 / 5 - 0 peringkat