اذهب إلى المحتوى

السؤال

نشر

اريد تقييم لهذه المشروع من حيث جودة الاكواد اي هل يوجد كود مختصر او هل توجد اكواد متكررة

وايضا اريد تقييم للمشروع نفسه هل هو جيد ام لا 

والهدف من ذلك المشروع هو فقط تنمية المهارات

 

اولا قمت بانشاء مصفوفة بداخلها كائن نصي لعرضها في الموقع 

ثانيا انشأت خطافين useState 

اول خطاف وهو heroCount هو المسؤول عن عرض الصور بشكل دينامكي على حسب الرقم 

ثاني خطاف playٍStatus هو مسؤول عن عرض الفيديو في المتصفح واذا كان false تعرض الصور اما اذا كان true يعرض الفيديو بدل من صور

 

ثالثا في ملف background.jsx 

قمت باستيراد prop من ملف رئيسي وهما playStatus & heroCount

ومن ثم اضفت شرط في حال كان playStatus يساوي الى true يعرض الفيديو والا تعرض الصور 

 

رابعا في ملف Hero.jsx

قمت بأسترداد prop من الملف الرئيسي وهم heroData & heroCount & setHeroCount & playStatus & setPlayStatus

ثم عرضت الكائن heroData في الموقع 

ومن ثم عرضت صورة arrow 

ومن ثم في كلاس icon 

اضفت ثلاثة li يحملان شرط بسيط وهو في حال heroCount يساوي 0 او 1 او 2 وهو رقم الصورة الموجود في الخطاف يعرض لي كلاسين الاول hero-dote وثاني orange من اجل active والا يعرض كلاس hero-dote 

 

ومن ثم في كلاس play-icon 

اضفت حدث onclick على setplayStatus اذا كان false تعرض ايقونة play واذا كان true  تعرض pause

 

وشكرا لكم

test.zip

Recommended Posts

  • 0
نشر

المشروع جيد جدا ومستواك يتطور بشكل ملحوظ .

لقد إستطعت وضع الفيديو والصور معا في مكون واحد وإستطعت التبديل بينهما بشكل ممتاز وعرضهم بالشكل الصحيح.

ولكن يوجد تكرار كثير في الأكواد هنا :

else if(heroCount === 0){
     return   <img src={image1} alt="img" className='background animation'/>
    }
      else if(heroCount === 1){
      return  <img src={image2} alt="img" className='background animation'/>
    }
      else if(heroCount === 2){
      return  <img src={image3} alt="img" className='background animation'/>
    }

لاحظ أن العناصر هي نفسها الإختلاف فقط في ال src وهنا يمكن تحسين هذا الجزء فتخيل لو وجد أكثر من 5 صور لديك أو كان يوجد classes كثيرة فهنا أى تعديل أو إضافة سيتوجب نسخ وإستخدام نفس الأكواد لذلك الصحيح هو جعل عنصر واحد وجعل ال src يختلف بناء على الشرط مباشرة هكذا مثلا :

import './Bg.css';
import video1 from '../../assets/EV-Web-Assets/Assets/video1.mp4';
import image1 from '../../assets/EV-Web-Assets/Assets/image1.png';
import image2 from '../../assets/EV-Web-Assets/Assets/image2.png';
import image3 from '../../assets/EV-Web-Assets/Assets/image3.png';
const Background = ({playStaus,heroCount}) => {
    const images = [image1, image2, image3];

    if(playStaus){
        return (
            <video className='background animation' autoPlay loop muted>
                <source src={video1} type='video/mp4'/>
            </video>
        )
    }

    return <img src={images[heroCount]} alt="img" className='background animation'/>
}

export default Background;

لاحظ هنا أنشأنا مصفوفة وإستخدمنا الheroCount للحصول على هذا العنصر .

ولكن باقي المشروع ممتاز ولا توجد أى مشكلة فيه.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...