לפני כ-15 שנה עבדתי בחברה שבה בנינו אפליקציות לסוכני נסיעות, עובדי שדות תעופה וחברות תעופה. כמו כן בנינו מסגרת פנימית משלנו עבור רכיבי ממשק משתמש ויכולות אפליקציה של עמוד בודד. היו לנו רכיבים לכל דבר: שדות, כפתורים, כרטיסיות, טווחים, טבלאות נתונים, תפריטים, בוררים תאריכים, בחירה ובחירה מרובה. אפילו היה לנו רכיב div. אגב, רכיב ה-div שלנו היה מעולה, הוא איפשר לנו לעשות פינות מעוגלות בכל הדפדפנים, מה שלא היה קל לעשות באותו זמן, תאמינו או לא.

העבודה שלנו התרחשה בנקודה בהיסטוריה שלנו שבה JS, Ajax ו-HTML דינמי נתפסו כמהפכה שהביאה אותנו לעתיד. לפתע, יכולנו לעדכן עמוד באופן דינמי, לקבל נתונים משרת, ולהימנע מהצורך לנווט לדפים אחרים, אשר נתפסו כאיטיים והבהב מלבן לבן גדול על המסך בין שני הדפים. היה משפט, שהפך פופולרי על ידי ג'ף אטווד (מייסד StackOverflow), שקרא: "כל יישום שניתן לכתוב ב-JavaScript ייכתב בסופו של דבר ב-JavaScript." - ג'ף אטווד

לנו בזמנו זה הרגיש כמו העז ללכת וליצור את האפליקציות האלה. זה הרגיש כמו אישור גורף לעשות הכל עם JS. אז עשינו הכל עם JS, ולא ממש הקדשנו את הזמן לחקור דרכים אחרות לעשות דברים. לא ממש הרגשנו את התמריץ ללמוד כראוי מה HTML ו-CSS יכולים לעשות. לא ממש תפסנו את האינטרנט כפלטפורמת אפליקציות מתפתחת בשלמותה. בעיקר ראינו בזה משהו שאנחנו צריכים לעקוף אותו, במיוחד כשזה הגיע לתמיכה בדפדפן. אנחנו יכולים פשוט לזרוק על זה יותר JS כדי לעשות דברים. האם לקחת את הזמן כדי ללמוד עוד על איך האינטרנט עובד ומה היה זמין בפלטפורמה יעזור לי? בטח, כנראה יכולתי לגלח חבורה של קוד שלא באמת היה נחוץ. אבל, בזמנו, אולי לא כל כך. אתה מבין, ההבדלים בדפדפן היו די משמעותיים אז. זו הייתה תקופה שבה אינטרנט אקספלורר עדיין היה הדפדפן הדומיננטי, כאשר פיירפוקס היה השני הקרוב, אך החל לאבד נתח שוק בגלל ש-Chrome צובר פופולריות במהירות. למרות ש-Chrome ו-Firefox היו די טובים בהסכמה על תקני אינטרנט, הסביבות שבהן האפליקציות שלנו פעלו הביאו לכך שנאלצנו לתמוך ב-IE6 במשך זמן רב. גם כשהורשה לנו לתמוך ב-IE8, עדיין היינו צריכים להתמודד עם הרבה הבדלים בין דפדפנים. לא רק זה, אלא שלרשת של אז פשוט לא היו כל כך הרבה יכולות מובנות ישירות בפלטפורמה.

מהר קדימה להיום. דברים השתנו מאוד. לא רק שיש לנו יותר מהיכולות האלה מאי פעם, אלא שהקצב שבו הן הופכות לזמינות גדל גם כן. הרשו לי לשאול את השאלה שוב, אם כן: האם לקחת את הזמן כדי ללמוד עוד על איך האינטרנט עובד ומה זמין בפלטפורמה יעזור לכם היום? בהחלט כן. ללמוד להבין ולהשתמש בפלטפורמת האינטרנט כיום מעמיד אותך ביתרון עצום על פני מפתחים אחרים. בין אם אתה עובד על ביצועים, נגישות, היענות, כולם ביחד, או סתם משלוח תכונות ממשק משתמש, אם אתה רוצה לעשות זאת כמהנדס אחראי, הכרת הכלים שעומדים לרשותך עוזרת לך להגיע ליעדים שלך מהר יותר וטוב יותר. כמה דברים שאולי כבר לא צריך ספרייה בשבילם אם אנו יודעים במה תומכים הדפדפנים כיום, השאלה היא אם כן: מה נוכל לוותר עליו? האם אנחנו צריכים רכיב div כדי לעשות פינות מעוגלות ב-2025? כמובן, אנחנו לא. המאפיין border-radius נתמך על ידי כל הדפדפנים הנמצאים בשימוש כיום במשך יותר מ-15 שנים בשלב זה. ו-corn-shape גם בקרוב, עבור פינות מפוארות עוד יותר. הבה נסתכל על תכונות עדכניות יחסית שזמינות כעת בכל הדפדפנים הגדולים, ובהן תוכל להשתמש כדי להחליף תלות קיימות בבסיס הקוד שלך. הנקודה היא לא לבטל מיד את כל הספריות האהובות שלך ולשכתב את בסיס הקוד שלך. לגבי כל השאר, תצטרך לקחת בחשבון תחילה את תמיכת הדפדפן ולהחליט על סמך גורמים אחרים ספציפיים לפרויקט שלך. התכונות הבאות מיושמות בשלושת מנועי הדפדפן הראשיים (Chromium, WebKit ו- Gecko), אך ייתכן שיש לך דרישות תמיכה שונות בדפדפן שמונעות ממך להשתמש בהן באופן מיידי. עכשיו זה עדיין זמן טוב ללמוד על התכונות האלה, ואולי לתכנן להשתמש בהן בשלב מסוים. פופ-אוברים ודיאלוגים ה-Popover API, אלמנט ה-HTML

וה-Pseudo-element ::backdrop יכולים לעזור לך להיפטר מתלות בפופ-אפ,הסבר כלים וספריות דו-שיח, כגון Floating UI, Tippy.js, Tether או React Tooltip. הם מטפלים בנגישות ובניהול המיקוד עבורך, מחוץ לקופסה, ניתנים להתאמה אישית רבה באמצעות CSS, וניתן בקלות להנפשה. אקורדיונים האלמנט
, תכונת השם שלו עבור אלמנטים סותרים זה את זה, וה- ::details-content pseudo-element מסירים את הצורך ברכיבי אקורדיון כמו Bootstrap Accordion או רכיב React Accordion. עצם השימוש בפלטפורמה כאן פירושו שקל יותר לאנשים שיודעים HTML/CSS להבין את הקוד שלך מבלי ללמוד תחילה להשתמש בספרייה ספציפית. זה גם אומר שאתה חסין מפני שבירת שינויים בספרייה או הפסקת השימוש בספרייה זו. וכמובן, זה אומר פחות קוד להוריד ולהפעיל. רכיבי פרטים בלעדיים זה מזה אינם צריכים JS כדי לפתוח, לסגור או להנפיש. תחביר CSS שכבות מדורגות, לבסיס קוד CSS מאורגן יותר, קינון CSS, ל-CSS קומפקטי יותר, פונקציות צבע חדשות, צבעים יחסיים ושילוב צבעים, פונקציות מתמטיקה חדשות כמו abs(), sign(), pow() ואחרות עוזרות להפחית את התלות במעבדי CSS מראש, ספריות עזר כמו Bootstrap ו-Tailwind, או אפילו ספריות-JS CSS-in. מחליף המשחק :has(), אחת התכונות המבוקשות ביותר מזה זמן רב, מסיר את הצורך בפתרונות מורכבים יותר מבוססי JS. JS Utilities שיטות Array מודרניות כמו findLast(), או at(), כמו גם שיטות Set כמו difference(), intersection(), union() ואחרות יכולות להפחית את התלות בספריות כמו Lodash. שאילתות מיכל שאילתות מיכל גורמות לרכיבי ממשק משתמש להגיב לדברים שאינם גודל נקודת התצוגה, ולכן הופכות אותם לשימוש חוזר יותר בהקשרים שונים. אין צורך להשתמש בספריית ממשק משתמש כבדה עבור זה יותר, וגם אין צורך להשתמש ב-polyfill. פריסה גריד, subgrid, flexbox או multi-column קיימים כבר הרבה זמן, אבל כשמסתכלים על תוצאות סקרי מצב ה-CSS, ברור שמפתחים נוטים להיות זהירים מאוד באימוץ דברים חדשים, ולחכות הרבה מאוד זמן לפני שהם עושים זאת. תכונות אלה היו Baseline במשך זמן רב ותוכל להשתמש בהן כדי להיפטר מתלות בדברים כמו מערכת הרשת של ה-Bootstrap, כלי העזר flexbox של Foundation Framework, Bulma fixed grid, Materialize grid או עמודות Tailwind. אני לא אומר שאתה צריך להוריד את המסגרת שלך. הצוות שלך אימץ את זה מסיבה מסוימת, והסרתו עשויה להיות פרויקט גדול. אבל התבוננות במה שפלטפורמת האינטרנט יכולה להציע ללא מעטפת צד שלישי מלמעלה מביאה הרבה יתרונות. דברים שאולי לא תצטרכו יותר בעתיד הקרוב כעת, בואו נסתכל במהירות על כמה מהדברים שלא תזדקקו להם ספרייה בעתיד הקרוב. כלומר, הדברים שלמטה לא לגמרי מוכנים לאימוץ המוני, אבל להיות מודע אליהם ותכנון לשימוש פוטנציאלי מאוחר יותר יכול להיות מועיל. מיקום עוגן מיקום עוגן CSS מטפל במיקום של popovers וטיפים בכלים ביחס לאלמנטים אחרים, ודואג לשמור אותם בתצוגה, גם בעת הזזה, גלילה או שינוי גודל העמוד. זהו השלמה מצוינת ל-Popover API שהוזכר קודם לכן, שיקל עוד יותר על המעבר מפתרונות JS עתירי ביצועים יותר. ניווט API ניתן להשתמש ב-API הניווט לטיפול בניווט באפליקציות של עמוד בודד והוא עשוי להיות השלמה מצוינת, או אפילו תחליף, למשימות React Router, Next.js או ניתוב Angular. הצג Transitions API ה-View Transitions API יכול לבצע הנפשה בין המצבים השונים של דף. באפליקציה של עמוד בודד, זה הופך מעברים חלקים בין מצבים לקלים מאוד, ויכול לעזור לך להיפטר מספריות אנימציה כגון Anime.js, GSAP או Motion.dev. אפילו טוב יותר, ה-API יכול לשמש גם עם יישומים מרובי עמודים. זוכרים קודם לכן, כשאמרתי שהסיבה שבנו אפליקציות של עמוד בודד בחברה שבה עבדתי לפני 15 שנה הייתה כדי להימנע מההבזק הלבן של טעינות מחדש של עמודים בזמן ניווט? אילו ה-API הזה היה זמין באותו זמן, היינו יכולים להשיג אפקטי מעבר יפים ללא מסגרת של עמוד בודד וללא הורדה ראשונית ענקית של האפליקציה כולה. אנימציות מונעות גלילה אנימציות מונעות גלילה פועלות על מיקום הגלילה של המשתמש, ולא לאורך זמן, מה שהופך אותן לפתרון מצוין לסיפורים ולסיורים במוצר. יש אנשים שהשתפרו עם זה קצת, אבל כשמשתמשים בו היטב, זה יכול להיות כלי עיצוב יעיל מאוד, ויכול לעזור להיפטר מספריות כמו: ScrollReveal, GSAP Scroll, אוWOW.js. בחירות הניתנות להתאמה אישית בחירה הניתנת להתאמה אישית היא רכיב

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free