Vue: روابط التوجيه المخصص تختلف في المكونات مقابل العناصر

تم إنشاؤها على ١٥ أبريل ٢٠١٩  ·  6تعليقات  ·  مصدر: vuejs/vue

الإصدار

2.6.10

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

https://jsfiddle.net/bponomarenko/uom10qd2/

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

  1. افتح وحدة تحكم المتصفح.
  2. انقر فوق الزر "تبديل" مرتين.

ما هو متوقع؟

سيصدر التوجيه نفس رسائل وحدة التحكم عند تطبيقه على عناصر DOM والمكونات (في init وبعد النقر فوق الزر).

لست متأكدًا مما ينبغي توقعه الناتج. إما

bind: first comp
bind: first elem
unbind: first comp
unbind: first elem
bind: first comp
bind: first elem

أو

bind: first comp
bind: first elem
unbind: second comp
unbind: second elem
bind: first comp
bind: first elem

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

الرسائل من التوجيه هي نفسها في init ، لكنها مختلفة بعد النقر فوق الزر.

خرج وحدة التحكم الفعلي:

bind: first comp
bind: first elem
unbind: first comp
unbind: second elem
bind: second comp
bind: first elem

يبدو أن ترتيب تطبيق التوجيهات على عناصر ومكونات DOM مختلف. في الإعداد لدي توجيه مخصص يعتمد على بعض سمات DOM مع بيانات التكوين. عندما يكون هذا التوجيه المخصص مرتبطًا / غير منضم في "تدفق منتظم" - يعمل كل شيء كما هو متوقع (يرتبط التوجيه بعد تحديث سمات العنصر). ومع ذلك ، عندما يكون التوجيه مرتبطًا / غير منضم في حالة Vue "in-place patch strategey" ، يبدو السلوك مختلفًا.

bug has workaround

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

يبدو أن الأمر يُستدعى بالمكوِّن القديم (لأنه يُعاد استخدامه) لكنه لا يزال يحتوي على attrs

كحل بديل ، قم بتعيين مفتاح على أحد المكونات

ال 6 كومينتر

يبدو أن الأمر يُستدعى بالمكوِّن القديم (لأنه يُعاد استخدامه) لكنه لا يزال يحتوي على attrs

كحل بديل ، قم بتعيين مفتاح على أحد المكونات

bponomarenko
ما قالتهposva مغطى بالفعل في الوثائق.
يمكنك الرجوع إلى هذا.

https://vuejs.org/v2/guide/conditional.html#Controlling -Reusable-Elements-with-key

posvapistis شكرا على الجواب. نعم ، هذا ما استخدمناه في النهاية كحل بديل ، كان علي أن أذكر ذلك في التذكرة. ومع ذلك ، فإن وجود السمة key لن يسمح باستخدام تحسينات عرض Vue.js. سيكون من الرائع إصلاحه.

يعتمد التحسين على أن لديك عناصر عديمة الحالة ، لذلك لن يكلف Vue عناء الاهتمام بإدارة معالجات الأحداث أو الحالات المحلية بشكل صحيح عند محاولة إعادة استخدام عنصر. لذلك أعتقد أن هذا ليس خطأ ولكن يمكن تحسينه في مستنداتنا حتى يتمكن المستخدمون من فهم ذلك بسهولة أكبر.

Justineo أنا أفهم المفاهيم الكامنة وراء التحسين نفسه. في موقفي ، يكون التوجيه المخصص مسؤولاً عن إضافة سمة الحالة إلى عنصر على bind وإزالة تلك السمة على unbind . ويتم إضافة / إزالة التوجيه بشكل مثالي عند إعادة استخدام المكون بواسطة Vue.js. ومع ذلك ، يختلف ترتيب تحديث خصائص المكون وتهيئة التوجيه في لحظات مختلفة من عمر المكون ، مما يجعل من الصعب تطوير توجيهات مخصصة.
في الواقع ، قد يكون التوثيق الإضافي حول تقنيات التحسين هذه مفيدًا ، لكن أحداث دورة حياة التوجيهات غير المتسقة هي بالأحرى خطأ يجب إصلاحه في رأيي.

كحل بديل ، قم بتعيين مفتاح على أحد المكونات

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

القضايا ذات الصلة

wufeng87 picture wufeng87  ·  3تعليقات

aviggngyv picture aviggngyv  ·  3تعليقات

paceband picture paceband  ·  3تعليقات

hiendv picture hiendv  ·  3تعليقات

paulpflug picture paulpflug  ·  3تعليقات