
הטקסט המלא של הדקות הראשונות בהרצאה «מה זה ריאקט - React ?» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
מה זה React? React זה ספרייה שהינה Open Source לבניית אפליקציות מבוססות קפוננטים ב-JavaScript או ב-TypeScript. נוצרה על ידי פייסבוק ב-2013 וכאשר אנחנו עובדים עם React אז פרויקט React משתמש ב-HTML, ב-CSS וב-JavaScript או ב-HTML,
CSS ו-TypeScript. לא עובדים גם Javascript, גם TypeScript או זה או זה. בקורס הזה אנחנו נעבוד TypeScript, העתיד עובר לקראת TypeScript ולכן נכון יותר לבנות פרויקט React בטייפסקריפט היום ולא בג'אבאסקריפט וזה גם מה שהולך להיות בעתיד, זה הכיוון של התעשייה.
React משתמש במשהו שנקרא Virtual DOM, תכף אנחנו נבין מה זה, בכדי לבצע אופטימיזציה לבראוזר. האתר הרשמי של ריאקט זה reactjs.org אז בואו נבין מה זה בעצם virtual DOM, מה זה בעצם DOM אז אם אנחנו יודעים JavaScript אנחנו יודעים שיש משהו שנקרא DOM Document Object Model זה בעצם עץ אובייקטים שהדפדפן יוצר מהתגיות
של מסמך ה-HTML כל תגית שהייתה ב-HTML הדפדפן יוצר ממנה אובייקט בדום אוקיי אובייקט נקרא אלמנט אנחנו בג'אווה סקריפט יכולים לגשת לאותו אלמנט בזיכרון, לבצע בו שינוי, להוסיף אלמנט, למחוק אלמנט, וברגע שעשינו את זה אז הדפדפן מיד מראה את
השינוי על הדף. כלומר ג'אווה סקריפט יודע לעדכן את הדף עצמו על ידי גישה לדום. מה הבעיה עם הדום? הדום הוא מאוד איטי.
יש לנו כאן גישה לאיזשהו רכיב במהלך הדום, ברגע שאנחנו רוצים לגשת אליו, נניח גישה לאיזשהו רכיב כאן ולשנות אותו, אז הדפדפן מחפש את הרכיב הזה בכל הדף, רץ פה בצורה רגרוסיבית, מוצא אותו, מעדכן אותו, מרפרש את עצמו, מצייר את עצמו מחדש, וכל הדבר הזה הוא מאוד מאוד איטי.
זה אחד החסרונות בעבודה ישירה עם הדום. אז אם בעצם אנחנו רוצים לעדכן איזשהו רכיב, בוא נניח עדכנו את הרכיב הזה, אז הדפדפן פשוט יבצע את זה. רגע, אבל אולי לא באמת אנחנו צריכים לעדכן אותה, אולי אנחנו מנסים לעדכן אותו אבל הערך שלו זהה לערך הקודם.
אולי אנחנו יכולים לעדכן בבת אחת סדרת רכיבים שנמצאים אחד ליד השני. אז כל הדברים האלה דום לא יודע לבצע ולכן כאשר אנחנו עובדים בג'אווה סקריפט ישירות עם הדום יכול להיות פה בעיית פרפורמנס.
מה קורה כאשר אנחנו עובדים עם React? יש לנו את ה-real dome של הדפדפן, עץ האובייקטים שהדפדפן יוצר, אבל ריאקט עושה בעצם איזשהו קופי של הדום האמיתי וקוראת לזה וירצ'ואל דום.
כאשר אנחנו עובדים עם ריאקט ואנחנו אומרים לריאקט בואי תעדכני לנו בעצם איזשהו רכיב שיש לך פה על הדף, איזושהי תגית, לא משנה מה, אז ריאקט לא עושה את זה ישירות על הדום האמיתי, היא עושה את זה על הווירצ'ואל דום. נניח אנחנו רוצים לעדכן את אותו רכיב, אז היא מסתכלת על הווירצ'ואל דום ומעדכנת אותו,
אז משווה אותו עם הרכיב המקורי שנמצא בדום. רגע, אולי אנחנו בכלל לא צריכים לעדכן את