"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يقوم useState بعرض المكونات مرتين في الوضع الصارم؟

لماذا يقوم useState بعرض المكونات مرتين في الوضع الصارم؟

تم النشر بتاريخ 2024-11-09
تصفح:295

Why Does useState Render Components Twice in Strict Mode?

فهم العروض المزدوجة في useState

في React، يُستخدم ربط useState بشكل شائع لإدارة حالة المكون. ومع ذلك، في ظل ظروف معينة، قد تلاحظ أن المكون الذي يتم عرضه باستخدام useState يُعرض مرتين لكل تحديث حالة. لقد أربك هذا السلوك العديد من المطورين الذين لم يقوموا بتمكين الوضع الصارم. لماذا يحدث هذا؟

دور الوضع الصارم

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

استدعاء الوظيفة المزدوجة في الوضع الصارم

تنص وثائق React صراحة على أن الوضع الصارم "يستدعي بشكل مزدوج" وظائف معينة عمدًا، بما في ذلك وظائف تحديث الحالة التي تم تمريرها إلى setState وuseState. هذا يعني أنه كلما قمت باستدعاء setNumber في التعليمات البرمجية الخاصة بك، فسيتم استدعاؤه مرتين.

عواقب الاستدعاء المزدوج

يؤدي هذا الاستدعاء المزدوج إلى عرض المكون مرتين. يهدف هذا السلوك إلى مساعدة المطورين على اكتشاف الآثار الجانبية المحتملة عن طريق جعلها أكثر حتمية. افتراضيًا، تقوم React بتأجيل التحديثات عند استخدام الخطاف useState. ومع ذلك، فإن الوضع الصارم يتجاوز هذا السلوك، مما يتسبب في حدوث العرض مرتين.

الاستنتاج

باختصار، العرض المزدوج للمكونات باستخدام useState هو نتيجة لتشغيل برنامج useState الخاص بك. رمز ضمن وضع React الصارم. على الرغم من أنه قد يبدو غير متوقع، إلا أن هذا السلوك مقصود ومصمم لتحسين قدرات تصحيح الأخطاء من خلال جعل الآثار الجانبية أكثر وضوحًا.

بيان الافراج أعيد طبع هذه المقالة على: 1729694788 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3