yazn_108 image

يزن احمد(@yazn_108)مطور مواقع فرونت اند

لا تتصل بنا بل تواصل معي

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

اشترك في النشرة البريدية

ما راح أزعجك برسائل كثيرة، كل القصة إنك تحط بريدك عشان يوصلك تنبيه أول ما أنشر مقالات جديدة. بسيطة وسهلة 👌 أهلاً بك.

هدف المنصة/من انا؟شروط الاستخدام

© جميع الحقوق محفوظة لـyazn_108

ماهو <Activity /> في عالم react؟

ميزة جديدة وجميلة من react للتعامل مع اظهار واخفاء المكونات وتحسين الاداء

  1. ماهو <Activity />
  2. ما علاقته بتحسين الاداء؟
  3. ماهي فكرته؟
  4. شكل استخدامه
  5. اشترك في النشرة البريدية

ماهو <Activity />

تم اطلاق Activity component في react 19.2 للتعامل مع اخفاء واظهار العناصر بشكل مناسب للاداء ولتقليل العمليات الغير ضرورية اثناء تصفح موقعك المبني باستخدام react وما يتبعها.

ما علاقته بتحسين الاداء؟

عند الاغلاق باستخدام useState او باستخدام الشروط عموما (if - else) يتم اعادة تصفير قيم الجزء المخفي وهذا لوحده يعتبر اداء اضافي على موارد الجهاز وسرعة الموقع واذا قمت بالاخفاء عبر css باستخدام display: none; فكانك يابو زيد ما غزيت لأن انت نعم اخفيت العنصر ولكن كامل العنصر مازال شغال بكامل عملياته في الخلفية وهذا حمل على الذاكره وعلى موارد الجهاز

ماهي فكرته؟

وهنا فكرة Activity component تظهر بقوة بحيث انه يمكنك من اخفاء العنصر بالاضافة لايقاف عملياته بشكل حرفي يعني حتى تصفير القيم لن يتم، يعني لو كان عندك input مكتوب بداخله “السلام عليكم ورحمة الله وبركاته” واغلقت الفورم او الـinput ورجعت فتحته رح تلاقي “السلام عليكم ورحمة الله وبركاته” موجودة كما هي وهنا استفدنا امرين اولا ما سببنا حمل اضافي على الموقع ثانيا حافظنا على البيانات للرجوع لها (لأن في بعض الحالات نحتاج هذا الموضوع)

شكل استخدامه

tsx

import { Activity, useState } from "react";
import AdminSettings from "./_components/AdminSettings";
const page = () => {
  const [IsOpen, setIsOpen] = useState<boolean>(false);
  return (
    <div>
      <Activity mode={IsOpen ? "visible" : "hidden"}>
        <AdminSettings />
      </Activity>
    </div>
  );
};
export default page;