ריאקט - הבסיס
vite
כלי לבניית תכנית ווב בצורה מהירה:
ניתן להשתמש במנגנון ה-template create
כדי ליצור פרוייקטי ריאקט בלי מאמץ.
מריץ גם את השרת.
מה זה ריאקט?
זהו פריימווק דקלרטיבי לממשק משתמש.
מה זה קומפוננטה
הגדרה עצמאית שניתן להשתמש בה באופן חוזר לרכיב בממשק משתמש.
ליצור קומפוננטה
החזרה עם סוגריים מעוגלות שאומר שזה קוד HTML בתוך קוד JS.
1 | function Header() { |
אפשר להשתמש בזה באופן הבא:
1 | function App() { |
Build in comps
lowercase
html elements
dom nodes
Custom comps:
uppercase
defined by u - wraps built in
react traverse until it recognizes only built in comps
ערכים דינמיים בקומפוננטה
כדי להוסיף ערכים יש להשתמש ב-{}
.
1 | return ( |
ערכים דינמיים לתכונות HTML
ניתן לעשות import
לקבצי css
וקבצים אחרים.
1 | import reactImg from "./assets/react-core-concepts.png"; |
העברת מידע בעזרת props
1 | function CoreConcept(props) { |
או בעזרת desctruction
ניתן להשתמש באובייקטים ואז לפצל אותם לתכונות:
1 | function CoreConcept({ image, title, description }) { |
פיצול קומפוננטה לקובץ
בקובץ אחר נרצה להוסיף export default
במידה וזה הדבר היחידי בקובץ:
1 | export default function CoreConcept({ image, title, description }) { |
ולעדכן imports
.
import XXX.css
כאשר מייבאים קבצי CSS
יש לשים לב שכל האלמנטים ייקבלו את העיצוב גם אם אנחנו נרצה את זה רק לקומפוננטה אחת.
props children
ניתן להעביר ערכים גם בעזרת הילדים:
1 | function MyComp(props){ |
השימוש בילדים זה אופציה מהירה יותר ומאפשר אנקפסולציה לקוד JSX
.
כמו כן גם מאפשר כתיבה שדומה יותר לקוד HTML
.
אם צריך לשלוט בצורה טובה יותר במידע שעובר אז שימוש בתכונות ספציפיות יותר טוב.
Component listeners
ניתן להעביר פונקציות על מנת להפעיל התנהגות:
1 | export default function TabButton({ children, onClick }) { |
ניתן להשתמש בפוקנציות חצים כדי לקנפג קריאה אחרת
1 | export default function TabButton({ children }) { |
מומלץ להחזיר callable
לאירוע.
לעדכן את ריאקט שה-UI שלנו השתנה
אם סתם נזרוק משתנה לתוך הקוד, ריאקט לא יידע שהוא ישתנה:
1 | let myName = "Shrek": |
הקומפוננטה תרוץ רק פעם אחת!
כדי לתקן את זה צריך להשתמש במשהו שנקרא React hook
.
מה שנשתמש בו הוא useState
1 | import { useState } from "react"; |
חייבים לקרוא לפונקציה ברמה בגבוה
- חייבים להשתמש בזה בתוך קומפוננטה ולא מחוץ לאחד.
- חייבים לקרוא לזה בהתחלה ולא בתוך תנאי או משהו פנימי
למשל זה אסור:
1 | function App(){ |
עדכון של הUI
1 | let myName = "Shrek": |
אם לרנדר או לא לרנדר - תנאים
אפשר לקצר עם ?:
או עם &&
.
דרך ראשונה - ?:
1 | {!selectedTopic ? <p>Please select an example.</p> : null} |
דרך שנייה - &&
1 | {selectedTopic && ( |
דרך שלישית - if else
1 | let tableContent = <p>Please select a topic</p>; |
Styling using classes
בתוך JSX
אנחנו משתמשים ב-className
.
1 | <button className={isSelected ? 'active' : undefined}>Click me </button> |
Listing
בקצרה השתמשו ב-map
כדי ליצור ממערך רשימה של קומפוננטות.
1 | {CORE_CONCEPTS.map((core) => ( |
השתמשו ב-key
כדי לומר ל-react
איך ל
React - Deep dive
ריאקט עובד בתצורת קומפילציה - הוא בונה ומאפטמז את הקוד ומייצר קבצים שניתן להריץ בדפדפן.
להשתמש בפונקציות createElement
האם חייבים JSX
?
ניתן גם לייצר אלמנטים בעזרת פונקציות בנויות של ריאקט.
1 | React.createElement( |
==
1 | <div id="content"> |
בתצורה של הפונקציות לא צריך באמת לבנות קבצי JSX
.