Vue: لا تستدعي Vue المراقب عند تغيير الخاصية قبل التدمير

تم إنشاؤها على ٢٣ مايو ٢٠١٨  ·  3تعليقات  ·  مصدر: vuejs/vue

إصدار

2.5.16

رابط الاستنساخ

https://jsfiddle.net/86s8qufj/

خطوات التكاثر

  1. افتح رابط الاستنساخ
  2. افتح وحدة التحكم
  3. انقر على زر "تبديل TestComponent".
    هذا خلق TestComponent لك.
  4. حاول تغيير شيء ما في المدخلات. يمكنك رؤية "In testInfo watcher" في وحدة التحكم ، مما يعني أن مراقب testInfo قد اتصل.
  5. انقر فوق الزر "تبديل TestComponent" مرة أخرى.
    هذا تدمير TestComponent.
    في الخطاف beforeDestroy ، قمت بتغيير خاصية "testInfo".
    ولكن يمكنك رؤية "In beforeDestroy" فقط في وحدة التحكم بدلاً من "In beforeDestroy" و "In testInfo watcher".

ما هو متوقع؟

أتوقع أن يتم استدعاء مراقب خاصية "testInfo" عندما أقوم بتغييره قبل الخطاف.

ما الذي يحدث بالفعل؟

لقد غيرت خاصية "testInfo" في beforeDestroy hook ، لكن المراقب لم يتصل.

التعليق الأكثر فائدة

أود أن أقول أنه سيكون من الجيد ذكرها في الوثائق - لأنه يوجد الآن "تم الاستدعاء مباشرة قبل إتلاف مثيل Vue. في هذه المرحلة ، لا يزال المثيل يعمل بكامل طاقته."

ال 3 كومينتر

أيضًا إذا حاولت تسجيل testInfo في خطاف مدمر - سترى قيمة جديدة. لكن يجب تدمير الجسم ....

beforeDestroy مباشرة قبل تفكيك مثيل Vue ، لذلك من الطبيعي ألا يقوم المشاهدون بالتشغيل لأنهم قد يتم تشغيلهم بمجرد إتلاف المثيل (مما يجعل معظم وظائف المراقب غير صالحة).
يجب عليك استدعاء المراقب بنفسك في الخطاف beforeDestroy بدلاً من تغيير البيانات

أود أن أقول أنه سيكون من الجيد ذكرها في الوثائق - لأنه يوجد الآن "تم الاستدعاء مباشرة قبل إتلاف مثيل Vue. في هذه المرحلة ، لا يزال المثيل يعمل بكامل طاقته."

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات