PracticU

יצירת Partial View בנוד NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › יצירת Partial View בנוד NodeJS
מילון מושגים:
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.
תחביר - אוסף הכללים של שפת תכנות הקובעים כיצד לכתוב קוד תקין. הפרתם גורמת לשגיאת תחביר.
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
תבנית - מבנה בסיסי מוכן שממנו יוצרים פריטים דומים, כמו תבנית עמוד או תבנית מסמך.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.

יצירת Partial View בנוד NodeJS
כדי לא לשכפל את אותו קוד HTML בכל דף, משתמשים ב-Partial Views: קובצי EJS רגילים שמכילים רק קטע אחד, ואפשר לשתול אותם בכל מקום. ההרצאה מראה איך מפרידים footer, header ו-menu, ומה עושים כשגרסת EJS משנה את התחביר.
השלבים העיקריים
1. יצירת ה-footer: בתיקיית ה-layout יוצרים footer.ejs, גוזרים אליו את התגית החוזרת מהדף, ומשאירים בו רק את הקוד לשכפול, בלי תגיות כמו HTML, head ו-body. אלה קיימות רק בדפים עצמם.
2. שתילה בדף: במקום הקוד שנגזר כותבים תגית עם סימן אחוז, שמסמנת למנוע ה-templating שהפקודה מתבצעת בצד השרת. הפקודה היא include עם הנתיב היחסי לקובץ.
3. ה-header: יוצרים header.ejs ושמים בו גם את הכותרת העליונה, גם את התפריט וגם קו הפרדה (HR), ואז משלבים אותו בדף הבית ובדף ה-About.
4. פיצול התפריט: מפרידים את התפריט ל-menu.ejs, כי הוא עשוי לגדול. את ה-include שלו שמים בתוך ה-header, ומתברר שאפשר לשלב partial בתוך partial אחר.
5. הרצה ושגיאה: עוצרים ומריצים מחדש, כי השינוי נוגע למנוע שרץ בשרת. מתקבלת שגיאת Unexpected identifier בזמן הקומפילציה של EJS, כלומר בעיית תחביר.
6. הפתרון: המרצה מחפש את השגיאה בגוגל ובמצא ב-Stack Overflow שהתחביר השתנה. ב-EJS גרסה 3 כותבים <%- include('...') %>, כך ש-include היא פונקציה. מתקנים כך בדף הבית, ב-About וב-header, והאתר עובד.
פקודות והגדרות
- תבנית ה-include בגרסה 3 של EJS: <%- include('menu.ejs') %>, כשהנתיב יחסי לתיקייה של הקובץ.
- שינוי בקבצי JavaScript של השרת מחייב עצירה והרצה מחדש.
שימו לב
המרצה מסיק שהתחביר הישן הוא של גרסה 2, ושמספר הגרסה הראשי מסמן breaking changes. לכן שגיאת תחביר אחרי עדכון גרסה כדאי לבדוק מול התיעוד או חיפוש.
אפשר עכשיו לפצל דף לחלקים משותפים ולשלב אותם בכל view, כדי לחסוך קוד.
השיעור הבא בקורס: Embedding Dynamic Data

פרקי ההרצאה: יצירת Partial View בנוד NodeJS

  1. 00:00

    מניעת שכפולים עם partial views

  2. 00:41

    יצירת partial לפוטר

  3. 01:21

    תגיות EJS ופקודת include

  4. 02:18

    partial ל-header

  5. 02:58

    כותרת ותפריט בתוך ה-header

  6. 03:58

    partial נפרד לתפריט

  7. 04:35

    include בתוך partial אחר

תמלול ההרצאה: יצירת Partial View בנוד NodeJS

הטקסט המלא של הדקות הראשונות בהרצאה «יצירת Partial View בנוד NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:04

    אז איך אנחנו מונעים שכפולים כאלה בתוך ה-HTML שלנו? אז למעשה, מה שאנחנו צריכים להשתמש זה משהו שנקרא partial views.

  2. 00:16

    partial views זה בעצם חלקי views שאנחנו אחר כך יכולים לשתול בכל מקום שאנחנו רוצים. אנחנו בונים אותם על ידי קבצי EJS רגילים, אבל שמכילים רק את המידע שאנחנו רוצים לשתול.

  3. 00:31

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

  4. 00:50

    נחזור, ניקח את כל התגית הזאת, נגזור אותה, נשים אותה בתוך הפוטר בלבד. אין לנו פה כמובן בתוך הפרשלס את כל התגיות של הדף המרכזיות, כמו html, head, body.

  5. 01:07

    זה קיים רק בדפים עצמם. אז כאן שמנו רק את הקוד שאנחנו רוצים לשכפל. אנחנו חוזרים עכשיו, זה היה ב-about, וכותבים את הפקודה הבאה.

  6. 01:21

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

  7. 01:50

    הפקודה שאנחנו מחפשים עכשיו נקראת אינקלוד. כלומר לך תחפש קובץ בגלל שאני נמצא כבר בתיקיית layout אז אני יכול לומר לו את הנתיב היחסי שלי קובץ שנקרא פוטר נקודה EJS והוא יחפש אותו באותה תיקייה.

  8. 02:10

    בואו ניקח את הקוד הזה נלך לדף הבית במקום כל הקוד הזה נשים רק את ה-include של בוא שים לי פה את הקוד השני. נבצע את אותו הדבר עבור ה-header.

  9. 02:31

    ניקח פרשל שנקרא header.EJS ונחזור לדף הבית ובואו נניח שאנחנו רוצים, האמת בואו נעשה משהו מעניין. בואו ניקח את כל זה ונשים בהדר אבל נחלק תכף את זה לפרשל משלו.

  10. 02:56

    תכף נראה מה הכוונה. אני הולך להדר ואני שותל את כל זה כי למעשה אם אני מסתכל על האתר הכותרת שלי מכילה גם פה את התפריט וגם את הכותרת העליונה.

  11. 03:08

    אפילו בואו נוסיף כאן איזה קו הפרדה כזה hr כזה אז יש לנו כאן את הכותרת את התפריט יש לנו את הכותרת העליונה ויש לנו תפריט קו הפרדה כולם נמצאים באזור של ההדר נחזור לדף הבית ניקח איזשהו include פה למעלה שמשלב את ההדר נקודה ejs שכמובן נמצא בתיקייה הנוכחית נבצע את אותו הדבר ל-about וכבר חסכנו פה המון קוד כל דף יש לו רק את

  12. 03:46

    ששייכות אליו מיין ב-HTML והאזור הראשי של הדף עצמו. בואו נבצע את אותו הדבר עבור מניו EJS. למה אנחנו רוצים לעשות את זה? כי המניו, יכול להיות שבהמשך הוא יהיה די נרחב וכדאי אולי להכניס אותו למעין קובץ פרשל משלו.

  13. 04:13

    יכול להיות שבמניו יהיה גם כל מיני הגדרות נוספות שאנחנו נרצה בהמשך. שמנו אותו בנפרד אבל השאלה היא איפה עכשיו אני שם את ה-include שלו אז אני יכול לשים את ה-include כאן שוב ושוב בדפים אבל בואו נראה שגם אם אני שם include בתוך קובץ פרשל אחר לדוגמה בהדר אז הכל אמור לעבוד כמו שצריך יש לנו פה אינקלוד מניו נקודה EJS תחפש לי את המניו

  14. 04:40

    גם כן באותה עתיקייה ואנחנו רואים שאינקלוד נקודת אינקלוד יכולה להיות בתוך פרשל שמוגדרת כאינקלוד במקום אחר אין שום בעיה לעשות את זה אז בואו נעצור רגע את הריצה כמובן שאנחנו צריכים לעצור כי יש פה דברים שקשורים למנוע עצמו שרץ בצד של השרת להריץ שוב

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: יצירת דף About

ההרצאה הבאה: Embedding Dynamic Data

הרצאות קשורות מקורסים אחרים

  • יצירת Partial View
  • יצירת אוביקט VIEW
  • Debug View
  • View Group

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React