frontend frameworks

مستوى متقدم

المسار الثالث: الإطارات الحديثة

React وTailwind لبناء واجهات احترافية

35 ساعة تعلم
6 مشاريع
شهادة إتمام

الدروس في هذا المسار

مقدمة إلى React.js

فهم أساسيات React وComponents وProps

3 ساعة قريبا

State وLifecycle

إدارة الحالة الداخلية للمكونات ودورة حياتها

2.5 ساعة قريبا

Hooks المتقدمة

useEffect, useContext, useReducer وغيرها من الـ Hooks المتقدمة

3 ساعة قريبا

Tailwind CSS

تصميم واجهات سريعة وجميلة باستخدام Tailwind

2 ساعة قريبا

Next.js الأساسي

بناء تطبيقات React مع Server-Side Rendering

2.5 ساعة قريبا

ربط React بقاعدة البيانات

ربط تطبيقات React بقواعد البيانات باستخدام APIs

2 ساعة قريبا
المشروع الختامي لهذا المسار

موقع مدونة (Blog) أو Dashboard صغير

عرض المشروع التجريبي



function initializeIntersectionObserver(elements,options={threshold:0.1,rootMargin:'0px 0px -50px 0px'}){const observer=new IntersectionObserver((entries)=>{entries.forEach(entry=>{if(entry.isIntersecting){entry.target.style.opacity='1';entry.target.style.transform='translateY(0)'}})},options);elements.forEach(el=>{el.style.opacity='0';el.style.transform='translateY(30px)';el.style.transition='opacity 0.6s ease, transform 0.6s ease';observer.observe(el)})} function initializeSmoothScrolling(){document.querySelectorAll('a[href^="#"]').forEach(anchor=>{anchor.addEventListener('click',function(e){e.preventDefault();const target=document.querySelector(this.getAttribute('href'));if(target){target.scrollIntoView({behavior:'smooth',block:'start'})}})})} function initializeLazyLoading(images){const imageObserver=new IntersectionObserver((entries,observer)=>{entries.forEach(entry=>{if(entry.isIntersecting){const img=entry.target;img.src=img.dataset.src||img.src;img.classList.remove('lazy');imageObserver.unobserve(img)}})});images.forEach(img=>{img.dataset.src=img.src;img.classList.add('lazy');imageObserver.observe(img)})} function debounce(func,wait){let timeout;return function executedFunction(...args){const later=()=>{clearTimeout(timeout);func(...args)};clearTimeout(timeout);timeout=setTimeout(later,wait)}} document.addEventListener('DOMContentLoaded',()=>{initializeSmoothScrolling();initializeLazyLoading(document.querySelectorAll('img'));initializeHeroSection();initializeFeaturedLessons();initializeBeginnersGuide();initializeRecentProjects();initializeNewsletter();initializeFAQ();initializeLatestArticles()})