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

كل الأنشطة

تحدث تلقائيًا

  1. الساعة الماضية
  2. هل تقصد محاذاة العناصر ؟ أى حذف المسافات لتعين ماكن بدأ العناصر ؟ إذا كان كذلك فالزر هو SHIFT + Tab وهذا الأمر سيقوم بحذف المسافات التي قبل العنصر أى يحذف إزاحة كاملة . أما زر ال Tab فإنه يضيف إزاحة زائدة.
  3. كان في حاجه بضغط عليها مع زرار Tab عشان اظبط الاكواد عشان ابقى عارف اول الكود فين واخره فين بس عشان فضلت فتره مش بعمل مشاريع نسيته ممكن حد يفكرني بيها كنت بضغط تاب مع حاجه عشان ينسق الاكواد
  4. لو انت مشترك في احدى الدورتين تواصل معايا انا بحاول اعمل مجتمع يكون لينا للي معاه الدورتين او واحده فيهم عشان نتشارك الافكار مع بعض ونذاكر ونشجع بعض
  5. انا الان انهيت اساسيات html and css and java script واريد طريقة لمراجعتهما بطريقة ممتعة لأنني لم استطع ان اراجع بطريقة العادية مع انني حاولة لا اعرف مالذي يمنعني انا احب ان ادرس وادرس كثيرا ولكن في المراجعة انا سيء هل من حل
      • 1
      • أعجبني
  6. انا بدرس في دورة الذكاء الاصطناعي بقالي حوالي ست شهور وحاليا في مسار machine learning وانا عندي 17 سنه وبلعب في كوره في نادي وفي نفس الوقت عندي دراستي اللي في المدرسه فا الوقت عندي بيبقي محدود اني اذاكر الذكاء الاصطناعي لان بصراحه عندي شغف بيه فانا كنت عايز طريقه او خطه اني اقدر استفيد من الدوره كامله اكبر استفاده وابقي متخرج كا جونير كويس في المجال حتي لو مش هشتغل بيه بحب اقعد اجرب التقنيات اللي اتعملتها فا ارجو الإفاده
  7. يرجى إرفاق ملف الكود وليس نسخه هكذا ليتم الحفاظ على هيكل الكود ومساعدتك بشكل أفضل. إذا كان هذا السؤال خاص بإحدى الدورات يرجى وضع سؤالك أسفل الدرس مباشرة لنستطيع مساعدتك بشكل أفضل.
  8. def get_forecast_data(): from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup options = Options() options.add_argument('--headless') # تشغيل بدون واجهة رسومية options.add_argument('--disable-gpu') options.add_argument('--no-sandbox') options.add_argument('--log-level=3') prefs = { "profile.default_content_setting_values": { "images": 2, "plugins": 2, "popups": 2, "notifications": 2, "media_stream": 2, } } options.add_experimental_option("prefs", prefs) driver = webdriver.Chrome(options=options) driver.get("https://world-weather.info/") html = driver.page_source # هنا كما بالدرسBeautifulSoup اكتب الكود الخاص بـ soup = BeautifulSoup(html, "html.parser") resorts = soup.find_all("div", id="resorts") print(resorts) driver.quit() get_forecast_data() import requests from bs4 import BeautifulSoup import re def get_forecast_data(): url = 'https://world-weather.info/' headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) if response.ok: soup = BeautifulSoup(response.content, 'html.parser') resorts = soup.find('div', class_='list') re_cities = r'">([\w\s]+)<\/a><span>' cities = re.findall(re_cities, str(resorts)) print(cities) get_forecast_data()
  9. مرحبا هل يمكنني ان اعرض لكم سكريبت الخاص بي
  10. اليوم
  11. وعليكم السلام ورحمة الله وبركاته. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  12. وعليكم السلام ورحمة الله وبركاته. إن ال (Test-Driven Development - TDD) هو أسلوب في تطوير البرمجيات يجعلك تكتب الاختبار (Test Case) الخاص بوظيفة معينة قبل أن تكتب الكود الفعلي لتلك الوظيفة فالفكرة الأساسية هي أن الاختبار هو الذي يقود عملية كتابة الكود وليس العكس. وهنا ثلاث خطوات للدورة الواحدة في ال TDD : أولا كتابة اختبار فاشل :حيث في تلك المرحلة تقوم بكتابة اختبار آلي (Automated Test) لجزء صغير من الوظيفة التي تريد إضافتها. ولأنك لم تكتب الكود الفعلي بعد فمن الطبيعي أن هذا الاختبار سيفشل عند تشغيله وهو أمر متوقع ومطلوب وهذا يضمن أن الاختبار نفسه يعمل بشكل صحيح. ثانيا كتابة الكود لتخطي الاختبار بنجاح: فهنا نكتب أقل كمية ممكنة من الكود التي تجعل الاختبار الذي قمنا بكتابته ينجح وفي هذه المرحلة لا نهتم بجودة الكود أو نظافته أو كفاءته بل الهدف الوحيد هو جعل الاختبار ينجح. ثالثا تحسين الكود : بعد أن ينجح الاختبار وأصبحت تعرف أن الوظيفة تعمل كما هو متوقع تبدأ الآن في تحسين الكود وتنظيفه. ثم بعد ذلك تكرر هذه الدورة لكل وظيفة صغيرة جديدة تريد إضافتها في برنامجك.
  13. وعليكم السلام ورحمة الله، هو عبارة عن هو منهجية في تطوير البرمجيات تعتمد على كتابة اختبارات برمجية تلقائية قبل كتابة الشيفرة الفعلية حتى بحيث تبدأ العملية بكتابة اختبار فاشل يصف ميزة أو وظيفة جديدة يراد تطويرها، ثم يقوم المبرمج بكتابة أبسط كود ممكن لكي يجعل هذا الاختبار ينجح، وبعدها يتم تحسين الكود من خلال إعادة التصميم دون تغيير سلوكه لضمان جودته وقابليته للصيانة. وهذه الدورة تتكرر بشكل سريع ومنظم لتغطية كل الوظائف الجديدة مما يزيد من جودة الكود ويقوي الثقة بأن البرمجيات تعمل كما هو متوقع. أما وأسلوب TDD يشجع على التفكير المسبق في متطلبات البرنامج وتصميمه ويعتمد بشكل كبير على اختبار وحدات الكود الصغيرة بشكل مستقل مما يسهل اكتشاف الأخطاء وتصحيحها بشكل مبكر كما يقلل من حدوث مشاكل عند تطوير الوظائف الجديدة أو تعديل الكود القائم يمكنك الاطلاع أكثر من هنا:
  14. السلام عليكم هو اي مفهوم الTest-Driven Development ؟
  15. الف شكراا جدا لحضرتك جزاك الله كل خير
  16. وعليكم السلام ورحمة الله وبركاته. إن البيانات الضخمة (Big Data) هو مصطلح يصف الكميات الهائلة والمعقدة من البيانات التي لا يمكن معالجتها أو تحليلها باستخدام الطرق التقليدية العادية. وتتميز هذه البيانات بثلاث خصائص رئيسية تعرف بـ 3Vs: الحجم (Volume): وهنا كمية البيانات تكون كبيرة جدا . السرعة (Velocity): يتم إنتاج البيانات بسرعة عالية جدا وبشكل مستمر مثل بيانات وسائل التواصل الاجتماعي أو أجهزة الاستشعار وغيرها. التنوع (Variety): تأتي البيانات بأشكال مختلفة منها البيانات المنظمة مثل جداول قواعد البيانات وغير المنظمة مثل النصوص والصور ومقاطع الفيديو. أما إدارة البيانات الضخمة (Big Data Management) فهي عملية جمع وتخزين ومعالجة وتحليل كميات كبيرة من البيانات لضمان جودتها وأمانها وإتاحتها لاتخاذ قرارات أفضل وتتضمن هذه العملية عدة خطوات وتقنيات منها: تكامل البيانات (Data Integration) حيث يتم جمع البيانات من مصادر متعددة. تخزين البيانات (Data Storage) وهنا يتم إستخدام أنظمة تخزين تستطيع على التعامل مع الحجم الهائل والكبير للبيانات مثل أنظمة الملفات الموزعة . معالجة البيانات (Data Processing) عن طريق استخدام أدوات قوية لمعالجة هذه البيانات بسرعة وهنا يأتي دور PySpark. حوكمة البيانات (Data Governance) وهي وضع سياسات ومعايير لضمان جودة البيانات وأمانها والامتثال للقوانين. وPySpark هو واجهة برمجية (API) بلغة بايثون لمحرك Apache Spark وإطار عمل قوي ومفتوح المصدر لمعالجة البيانات الضخمة بشكل موزع وعلى نطاق واسع. فببساطة PySpark يسمح للمطورين وعلماء البيانات باستخدام لغة بايثون لكتابة أكواد يمكنها تحليل ومعالجة كميات هائلة من البيانات بسرعة فائقة عن طريق توزيع المهام على مجموعة من الأجهزة . وأهم استخداماته: تحليل البيانات الضخمة. تعلم الآلة (Machine Learning) على مجموعات بيانات كبيرة. معالجة البيانات (Streaming Data) في الوقت الفعلي. أما مستودع البيانات (Data Warehouse) هو نظام مركزي لتخزين كميات كبيرة من البيانات من مصادر متنوعة داخل المؤسسة والهدف الأساسي منه ليس إدارة العمليات اليومية بل دعم عمليات التحليل الذكي للأعمال (Business Intelligence - BI) واتخاذ القرارات الاستراتيجية ويتم تنظيم البيانات فيه بشكل يسهل عمل الاستعلامات التحليلية وإنشاء التقارير. وETL هي عملية أساسية لبناء مستودع البيانات وتتكون من ثلاث مراحل: الاستخراج (Extract): سحب البيانات من مصادر مختلفة. التحويل (Transform): تنظيف البيانات وتنسيقها وتحويلها لتكون متوافقة مع هيكل مستودع البيانات وقد تتضمن هذه المرحلة دمج البيانات وإزالة التكرار وتغيير التنسيقات. التحميل (Load): تحميل البيانات المحولة إلى مستودع البيانات (DWH) لتكون جاهزة للتحليل. أما DI (Data Integration) تكامل البيانات فهو مصطلح أشمل من ETL. وإنه يشير إلى جميع العمليات والتقنيات المستخدمة لدمج البيانات من مصادر مختلفة لتقديم رؤية موحدة وشاملة ويمكن أن يتم تكامل البيانات بعدة طرق، ويعتبر ETL أحد أشهر هذه الطرق. و أخيرا PL/SQL (Procedural Language/Structured Query Language) هي لغة برمجة إجرائية تم تطويرها بواسطة شركة أوراكل كإمتداد للغة SQL وبينما تستخدم SQL للتعامل مع البيانات تضيف PL/SQL إمكانيات برمجية مثل: المتغيرات (Variables). الحلقات التكرارية (Loops). الجمل الشرطية (IF-THEN-ELSE). معالجة الأخطاء (Exception Handling).
  17. على الأغلب فإنّ استمرارك في رفع التطبيقات على حساب الشركة من نفس الجهاز أو نفس عنوان ال IP الذي تم حظر حسابك الشخصي عليه سيشكل خطورة كبيرة جدا على حساب الشركة. حتى لو كان الحساب باسم شركة ومن بلد آخر فالسبب هو أن Google تربط الحسابات بالأجهزة والشبكات وأي تكرار لهذه العناصر بين حساب محظور وأي حساب آخر مهما كانت هوية الحساب الجديد يعرّض الحساب الجديد للحظر التلقائي أو المراجعة حتى لو مر وقت طويل أو تغيرت البيانات. لأنّ Google تستخدم تقنيات "البصمة الرقمية" أو Device Fingerprinting & IP Tracking حيث تتابع الجهاز نفسه حتى لو تم تغيير المستخدم وعنوان IP حتى مع تغيير الحساب أو الدولة وتتابع ملفات النظام المرتبطة بالحسابات المحظورة أيضا. لذا من الأفضل ألا تتستخدم نفس الجهاز أو نفس شبكة الإنترنت التي تم عبرها حظر حسابك الشخصي في أي عمل على حساب الشركة أي استخدام جهاز جديد كليا لم يسبق أن دخل عليه أي حساب Google Play محظور. واستخدام اتصال إنترنت جديد كليا ويفضّل أن يكون من بلد الشركة وليس أي اتصال كان مربوطا بالحساب المحظور. أما إذا اضطررت لاستخدام جهازك القديم فعليك إعادة تهيئة ضبط المصنع (Factory Reset) للجهاز ومسح كل بيانات الحسابات القديمة مع ذلك فهذا الحل قد لا يكون مضمونا لأنّه بالرغم من ذلك قد تكون الحسابات مربوطة برقم الجهاز نفسه (IMEI/MAC address)
  18. وعليكم السلام ورحمة الله، في دورة الذكاء الاصطناعي مسار تحليل البيانات لا يتناول موضوع البيانات الضخمة (Big Data) أو تقنياتها لأنّ هذا المجال واسع بحدّ ذاته وقد يحتاج إلى مسار أو اثنين منفصلين وفي بعض الحالات إلى دورة كاملة لشرحه وقد يتم إضافته مستقبلا في التحديثات القادمة، فالبيانات الضخمة هي كميات هائلة من البيانات التي تتطلب تقنيات خاصة لمعالجتها وتخزينها بسبب حجمها وسرعتها وتنوعها، ويتم إدارتها عبر بنى تحتية موزعة وبرمجيات متخصصة ضمن مفهوم يعرف ب Big Data management. أما PySpark فهو إطار عمل بلغة بايثون يتيح معالجة البيانات الضخمة باستخدام محرك Apache Spark بينما PLSQL فهي لغة برمجة خاصة بقواعد بيانات Oracle تمكن من كتابة إجراءات وبرامج داخل قاعدة البيانات. يمكنك الاطلاع أكثر من هنا:
  19. وعليكم السلام، ببساطة ودون تعقيد فإنّ مكتبة NumPy تستخدم للتعامل مع الأعداد والمصفوفات بشكل سريع وسهل مثل جدول كبير من الأرقام تستطيع أن تجري عليه جمع وطرح وضرب بسرعة فهي مثل صندوق أدوات جاهزة للعمليات الرياضية على البيانات. أما مكتبة Numba فهي تساعد على تسريع البرنامج عندما تكتب تعليمات بايثون بنفسك وتريد أن تجعلها أسرع مثل لغة البرمجة C فمثلا إذا كتبت حلقة (loop) تحسب أرقام كثيرة Numba ستجعل هذه الحلقة تعمل بسرعة كبيرة. فكلاهما ستساعدانك لكن كل واحدة له دور مختلف ف NumPy للبيانات وعملياتها وNumba لتسريع التعليمات التي تكتبها بنفسك.
  20. وعليكم السلام. يمكنك ذلك من خلال نشر انشغالك في مدونة حسوب i/o هناك توجد مجتمعات كثيرة يمكنك اختيار المناسب لك وستجد ما تريده هناك من خلال الاطلاع على أحدث أخبار التقنية وتطوير الويب وستجد الكثير من المستخدمين المهتمين بالمجال وربما مشتركين أيضا في إحدى دورات الأكاديمية أو اشتركوا فيها من قبل: https://io.hsoub.com/webdev
  21. المشكلة لديك هنا في هذا الجزء : حيث أنك تستخدم الدالة scrollBy وهذه الدالة تقوم بالتمرير بمقدار ما تريده وهنا أنت تقوم بكتابة 0 و 0 لهذا لا يتم التمرير مطلقا. أما ما تريد تنفيذه هو التمرير إلى أعلى أى الدالة scrollTo وليس scrollBy هكذا : window.scrollTo({ top: 0, left: 0, behavior: 'smooth' })
  22. إن هذا الأمر بالفعل صعب وليس جميع الأشخاص لديهم تلك الموهبة وهي التصميم وتخيل وبناء التصميمات من البداية فهي موهبة مثل الرسم وغيرها ويجب تنميتها لتكون جيد في هذا الأمر. ويجب عليك معرفة أن وظيفتك ليس إنشاء تلك التصميمات بل وظيفتك هي تحويل التصميم إلى كود front end فهذه هي وظيفة ال front end أما التصميم فهو وظيفة المصمم designer و ال UX UI . لهذا إذا كنت تريد إنشاء التصاميم فتستحتاج إلى تعلم ال UX UI والأدوات الخاصة به ويمكنك قراءة التالي لمزيد من التفاصيل :
  23. هذا أمر طبيعي ومشكلة عدم وجود تصميم جاهز لتحويله إلى كود هي أمر عادي يواجهه كثير من مطوري الواجهات الأمامية والحل ببساطة هو أن تبدأ بالتعلّم من تصاميم جاهزة موجودة على مواقع مثل Dribbble وBehance حيث يمكنك استخدامها كمصدر إلهام لفهم بناء التصاميم وكيفية تحويلها إلى مشاريعك. فلا تنتظر أن يكون لديك تصميم مثالي قبل أن تبدأ بل استخدم أطر عمل مثل Bootstrap أو Tailwind CSS لتساعدك على بناء واجهات سريعة ومحترفة ومع الوقت والتمرن ستكتسب مهارات التصميم تدريجيا الأهم حاليا هو أن تبدأ بتجربة وتحويل أفكار بسيطة إلى كود وتطور محفظة مشاريعك خطوة بخطوة، لأن الخبرة تُبنى بالممارسة وليست بالانتظار. كما أن محفظة الأعمال الاحترافية هي التي تبدأ من الصفر إلى الاحتراف مع تحديثها كل مرة بناء على خبراتك وتجاربك، فكلما زادت خبرتك ستستغني عن المشاريع الصغيرة التي قمت بها في بداياتك وهكذا.
  24. انا لدي مشكلة في فرونت اند مشكلتي انا ماعندي تصاميم اقدر احطها في مشاريعي يعني انا اذا شفت تصميم معين لاي موفع اقدر اسويه واحوله الى كود لكن بدون رؤية تصميم لا يمكنني تصميم اي مشروع وحتى اني اريد حاليا ان ابني بورتفوليو خاص بي لكن ماعندي صورة عامة عن تصميم المبتكر شو الحل برايكم
  25. import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { Route, Routes } from "react-router-dom"; import BtmHeader from "./Components/BtmHeader"; import TopHeader from "./Components/TopHeader"; import React from "react"; import Home from "./Page/Home"; import Footer from "./Components/Footer"; import ProductDetails from "./Page/ProductDetails"; import Cart from "./Page/Cart"; import { Toaster } from "react-hot-toast"; import Category from "./Page/Category"; import Favorite from "./Page/Favorite"; import SearchResults from "./Page/SearchResults"; import Login from "./Page/Login"; import Register from "./Page/Register"; import Buying from "./Page/Buying"; import Blog from "./Page/Blog"; import Blog1 from "./Page/BlogsPage/Blog1"; import Blog2 from "./Page/BlogsPage/Blog2"; import Blog3 from "./Page/BlogsPage/Blog3"; import Blog4 from "./Page/BlogsPage/Blog4"; import Blog5 from "./Page/BlogsPage/Blog5"; import Blog6 from "./Page/BlogsPage/Blog6"; import Blog7 from "./Page/BlogsPage/Blog7"; import Blog8 from "./Page/BlogsPage/Blog8"; import Blog9 from "./Page/BlogsPage/Blog9"; import Blog10 from "./Page/BlogsPage/Blog10"; import Blog11 from "./Page/BlogsPage/Blog11"; import Blog12 from "./Page/BlogsPage/Blog12"; import About from "./Page/About"; import Services from "./Page/Services"; import Scroll from "./Components/Scroll"; function App() { return (_jsxs(React.Fragment, { children: [_jsx(Scroll, {}), _jsx(Toaster, { position: "bottom-right", toastOptions: { style: { background: "#fff", padding: "15px", borderRadius: "20px", }, } }), _jsxs("header", { children: [_jsx(TopHeader, {}), _jsx(BtmHeader, {})] }), _jsxs(Routes, { children: [_jsx(Route, { path: "/", element: _jsx(Home, {}) }), _jsx(Route, { path: "/product/:id", element: _jsx(ProductDetails, {}) }), _jsx(Route, { path: "/cart", element: _jsx(Cart, {}) }), _jsx(Route, { path: "/category/:category", element: _jsx(Category, {}) }), _jsx(Route, { path: "/favorite", element: _jsx(Favorite, {}) }), _jsx(Route, { path: "/search", element: _jsx(SearchResults, {}) }), _jsx(Route, { path: "/login", element: _jsx(Login, {}) }), _jsx(Route, { path: "/signup", element: _jsx(Register, {}) }), _jsx(Route, { path: "/buying", element: _jsx(Buying, {}) }), _jsx(Route, { path: "/about", element: _jsx(About, {}) }), _jsx(Route, { path: "/services", element: _jsx(Services, {}) }), _jsx(Route, { path: "/blog", element: _jsx(Blog, {}) }), _jsx(Route, { path: "/blog1", element: _jsx(Blog1, {}) }), _jsx(Route, { path: "/blog2", element: _jsx(Blog2, {}) }), _jsx(Route, { path: "/blog3", element: _jsx(Blog3, {}) }), _jsx(Route, { path: "/blog4", element: _jsx(Blog4, {}) }), _jsx(Route, { path: "/blog5", element: _jsx(Blog5, {}) }), _jsx(Route, { path: "/blog6", element: _jsx(Blog6, {}) }), _jsx(Route, { path: "/blog7", element: _jsx(Blog7, {}) }), _jsx(Route, { path: "/blog8", element: _jsx(Blog8, {}) }), _jsx(Route, { path: "/blog9", element: _jsx(Blog9, {}) }), _jsx(Route, { path: "/blog10", element: _jsx(Blog10, {}) }), _jsx(Route, { path: "/blog11", element: _jsx(Blog11, {}) }), _jsx(Route, { path: "/blog12", element: _jsx(Blog12, {}) })] }), _jsx(Footer, {})] })); } export default App; // App.js import { Route, Routes } from "react-router-dom"; import BtmHeader from "./Components/BtmHeader"; import TopHeader from "./Components/TopHeader"; import React from "react"; import Home from "./Page/Home"; import Footer from "./Components/Footer"; import ProductDetails from "./Page/ProductDetails"; import Cart from "./Page/Cart"; import { Toaster } from "react-hot-toast"; import Category from "./Page/Category"; import Favorite from "./Page/Favorite"; import SearchResults from "./Page/SearchResults"; import Login from "./Page/Login"; import Register from "./Page/Register"; import Buying from "./Page/Buying"; import Blog from "./Page/Blog"; import Blog1 from "./Page/BlogsPage/Blog1"; import Blog2 from "./Page/BlogsPage/Blog2"; import Blog3 from "./Page/BlogsPage/Blog3"; import Blog4 from "./Page/BlogsPage/Blog4"; import Blog5 from "./Page/BlogsPage/Blog5"; import Blog6 from "./Page/BlogsPage/Blog6"; import Blog7 from "./Page/BlogsPage/Blog7"; import Blog8 from "./Page/BlogsPage/Blog8"; import Blog9 from "./Page/BlogsPage/Blog9"; import Blog10 from "./Page/BlogsPage/Blog10"; import Blog11 from "./Page/BlogsPage/Blog11"; import Blog12 from "./Page/BlogsPage/Blog12"; import About from "./Page/About"; import Services from "./Page/Services"; import Scroll from "./Components/Scroll"; function App() { return ( <React.Fragment> <Toaster position="bottom-right" toastOptions={{ style: { background: "#fff", padding: "15px", borderRadius: "20px", }, }} /> <header> <TopHeader /> <BtmHeader /> </header> <Scroll /> <Routes> <Route path="/" element={<Home />} /> <Route path="/product/:id" element={<ProductDetails />} /> <Route path="/cart" element={<Cart />} /> <Route path="/category/:category" element={<Category />} /> <Route path="/favorite" element={<Favorite />} /> <Route path="/search" element={<SearchResults />} /> <Route path="/login" element={<Login />} /> <Route path="/signup" element={<Register />} /> <Route path="/buying" element={<Buying />} /> <Route path="/about" element={<About />} /> <Route path="/services" element={<Services />} /> {/* Blog Pages Routes */} <Route path="/blog" element={<Blog />} /> <Route path="/blog1" element={<Blog1 />} /> <Route path="/blog2" element={<Blog2 />} /> <Route path="/blog3" element={<Blog3 />} /> <Route path="/blog4" element={<Blog4 />} /> <Route path="/blog5" element={<Blog5 />} /> <Route path="/blog6" element={<Blog6 />} /> <Route path="/blog7" element={<Blog7 />} /> <Route path="/blog8" element={<Blog8 />} /> <Route path="/blog9" element={<Blog9 />} /> <Route path="/blog10" element={<Blog10 />} /> <Route path="/blog11" element={<Blog11 />} /> <Route path="/blog12" element={<Blog12 />} /> </Routes> <Footer /> </React.Fragment> ); } export default App; //App.tsx import { useEffect } from 'react'; import { useLocation } from 'react-router-dom'; const Scroll = () => { const pathname = useLocation(); useEffect(() => { window.scrollBy({ top: 0, left: 0, behavior: 'smooth' }); }, [pathname]); return null; }; export default Scroll; // Scroll.js import { useEffect } from 'react' import { useLocation } from 'react-router-dom' const Scroll = () => { const pathname = useLocation(); useEffect(() => { window.scrollBy({ top: 0, left: 0, behavior: 'smooth' }) },[pathname]) return null; } export default Scroll // Scroll.tsx ال scroll لايعمل من مفترض عند دخول الى اي صفحة يرفع سكرول الى اعلى كي يرى صفحة وليس footer
  26. أصبحت الآن فيسبوك أكثر صرامة في التطبيقات الخاصة بها حاليا وليس كما كان سابقا كان لأى شخص يستطيع إنشاء تطبيق والتعامل مع المستخدمين . ولكن الآن أصبح الأمر إجباريا أن تحصل على حساب أعمال لتستطيع إنشاء نشاطك ومن خلاله تستطيع إنشاء التطبيق الذي يمكنك من بناء الكود الذي تريده . تستطيع البحث عن تطبيق تم إنشاءه قديما قبل تلك الشروط الصارمة وسيعمل معك إذا كان في وضع النشر سابقا . أما حاليا فلن تستطيع تجاوز هذا الأمر دون أن يكون معك حساب أعمال .
  1. عرض المزيد
×
×
  • أضف...