react vs angular
-
אני מתחיל לגעת כעת בבנייה מחדש של ה-UI באחד הפרוייקטים שלי (משהו לכיף האישי בשלב זה)
ומתלבט על מה ללכת.
ריאקט או אנגולר.
את שניהם אני לא מכיר לעומק.
ורוצה שזו תהיה הזדמנות להכיר את אחד מ2 הפריימוורקים האלו.צד השרת יהיה c#, בגלל שצד השרת כבר כתוב לי.
ההתלבטות שלי מה יותר מתאים.
פחות מעניין אותי האופנה.מדובר על CURD + הרשאות + דוחות מעניינים.
צד הלקוח כיום ממומש בrazor (ובינתיים הוא עושה את העבודה היטב)אשמח למידע ממי שהתנסה, עדיף אם יש לו נסיון (אפילו בסיסי) ב2 הפריימוורקים.
(אל תשלחו אותי לחפש בגוגל כי כבר עברתי את זה. אני מעוניין לשמוע מניסיון שלכם)
תודה רבה!! -
-
-
@clickone
לדעתי אנגולר 2 (כלומר 7).
אין לי ניסיון עם ריאקט מלבד לעבור על הדוקומנטציה שלהם..
עם אנגולר יש לי ניסיון הרבה יותר ואוכל לעזור..
כמו כן, אנגולר הוא פריימוורק מקיף שנותן לך את כל המעטפת שאתה צריך לאפליקציה, סרביסים, טפסים וכו'.
כמו כן, יש לך ספריות גדולות שנותנות לך הרבה קומפוננטות מוכנות, כמו אנגולר מטריאל של גוגל, וprimeNg.כמו כן לדעתי ts עוזרת לשמור על קוד בהיר ומסןדר, כשהפרוייקט הופך לגונגל..
-
@clickone אנגולר 2 ממש לא מסובך ללמידה..
אני מאמין שתוכל לקפוץ למים וללמוד תוך כדי.
אנגולר 1 לא מספיק מכיר, אך נראה לי מיושן..
אני דווקא מאמין בייתרון של פריימוורק על פני ספריה.
לא אכחד שיש לאנגולר את החיסרון של ביצועים לעומת ריאקט, בריאקט הרינדורים הרבה יותר מהירים. אבל באנגולר 7 יש כבר תמיכה מובנית הגלילה וירטואלית אם כי זה טיפהלה מורכב לפעמים.. -
@אהרן תודה על הברכות!
ריאקט מנהלת דום וירטואלי, כמו שאתה יכול לראות כאן. כלומר, בעצם כשאתה כותב בריאקט אינפוט, דיב וכדו', אתה בעצם מתייחס לאובייקט JS של ריאקט שמייצג אלמנט, אבל לא את האלמנט עצמו. לריאקט יש מנגנון פנימי שיודע לזהות כשנעשים שינויים, ולזהות היכן השתנה, וממילא לרנדר לדום רק את המקום בו התרחש השינוי. כמו כן, כשיש לך ליסט של אלפי איטמים, הוא יוצר על המסך רק את האיטמים הרלבנטים, ומה שלא מוצג - פשוט לא קיים.
הדבר הזה נותן לריאקט יכולות רינדור ועדכון מהירות מאד.
מצד שני, הקונספט של ריאקט של ערבוב הקוד והHTML יחד, הוא מאד נח לפיתוח, אבל לטעמי בטווח ארוך ככל שהאפליקציה גדלה - קשה יותר לתחזוקה ולהבנה.באנגולר, המנגנון עובד בצורה שונה. אנגולר לא משתמשת בדום וירטואלי אלא בדום האמיתי, אלא שיש לה מנגנון פנימי שמאפשר לדעת היכן התרחש השינוי ולעדכן בהתאם.
מה שיוצר לך בעיה כשאתה מציג טבלה עם כמויות גדולות של מידע, כי הכל מתרנדר לדום ישירות (אע"פ שהוא לא מוצג כרגע בטבלה או בליסט או במה שלא יהיה..)
הפתרון לזה הוא גלילה וירטואלית, שבעצם יוצרת אלמנטי HTML רק למה שמוצג כרגע במסך, וכל השאר לא קיים. וכשהגלילה משתנה, בעצם אנו מרנדרים ומחליפים את הדום. (בדומה למה שריאקט עושה באופן מובנה).בגירסה 7 של אנגולר, נוספה לזה תמיכה מובנית בספריה.
עיין כאן
וכאן דוגמה למימוש של זה בstackblitz -
למה לא אנגולר, כי אנגולר אוהבת לסבך את מה שצריך להיות פשוט מייצרת עוד ועוד api, כבדה מסורבלת וקשה ללמידה.
למה לא אנגולר, כי אנגולר היא לא סקלבילית לא מודולרית. זה או שעובדים איתה מהתחלה עד הסוף או שלא עובדים איתה בכלל.
כי באנגולר אתה לא לומד את הבסיס שזה ג'ווה סקריפט, אתה עסוק בללמוד שפה ומילות קסם שמישהו אחר החליט עליהם. ביום שאנגולר תמות או תיוולד מחדש... כל מה שלמדת יזרק לפח.
כי באנגולר לא עסוקים בלפתור בעיות ארכיטקטורה כי הפריימוורק פותר לך את כל הבעיות אתה רק צריך לשנן את הפתרונות, זה מייבש את המוח של המפתח.
כי באנגולר זמן פיתוח הוא פי שתיים לעומת ריאקט וויו.
למה ריאקט? כי ריאקט מתעסקת רק ב binding data to view וביצירת ממשקים מודולריים וגנרים וכל השאר זה ג'ווה סקריפט. כי ריאקט יותר מהירה. כי ריאקט אפשר לכתוב ב es6/es5/TS
אותו כנל Vue רק שהיא יותר מזכירה את אנגולר בכתיבה שלה וגם היא צוברת תאוצה.
בינתיים החסות של גוגל לא מנעה מוות של אנגולר 1 . כמה אפליקציות של גוגל כתובות באנגולר2 ? 0000!
בינתיים הם ממשיכים לשבור את האיפיאיי שלהם גם בעדכונים האחרונים.
יש עוד כמה סיבות לא נלאה.
מקור:
https://www.prog.co.il/threads/מה-הרעיון-של-אנגולר.156766/page-2
אני רואה יותר ויותר מקומות שכתוב שם דברים דומים.
ומנסה להבין, האכן כצעקתה? -
@avr416 אמר בreact vs angular:
מצד שני, הקונספט של ריאקט של ערבוב הקוד והHTML יחד, הוא מאד נח לפיתוח, אבל לטעמי בטווח ארוך ככל שהאפליקציה גדלה - קשה יותר לתחזוקה ולהבנה.
אהמממ...
זה לא די כך גם באנגולר2 שמכווינה הרבה יותר לקומפננוט?
חושב שיש פה לא מעטים שחושבים שזה חסכון ובלגן. -
@clickone אמר בreact vs angular:
למה לא אנגולר, כי אנגולר אוהבת לסבך את מה שצריך להיות פשוט מייצרת עוד ועוד api, כבדה מסורבלת וקשה ללמידה.
למה לא אנגולר, כי אנגולר היא לא סקלבילית לא מודולרית. זה או שעובדים איתה מהתחלה עד הסוף או שלא עובדים איתה בכלל.
כי באנגולר אתה לא לומד את הבסיס שזה ג'ווה סקריפט, אתה עסוק בללמוד שפה ומילות קסם שמישהו אחר החליט עליהם. ביום שאנגולר תמות או תיוולד מחדש... כל מה שלמדת יזרק לפח.
כי באנגולר לא עסוקים בלפתור בעיות ארכיטקטורה כי הפריימוורק פותר לך את כל הבעיות אתה רק צריך לשנן את הפתרונות, זה מייבש את המוח של המפתח.
כי באנגולר זמן פיתוח הוא פי שתיים לעומת ריאקט וויו.
למה ריאקט? כי ריאקט מתעסקת רק ב binding data to view וביצירת ממשקים מודולריים וגנרים וכל השאר זה ג'ווה סקריפט. כי ריאקט יותר מהירה. כי ריאקט אפשר לכתוב ב es6/es5/TS
אותו כנל Vue רק שהיא יותר מזכירה את אנגולר בכתיבה שלה וגם היא צוברת תאוצה.
בינתיים החסות של גוגל לא מנעה מוות של אנגולר 1 . כמה אפליקציות של גוגל כתובות באנגולר2 ? 0000!
בינתיים הם ממשיכים לשבור את האיפיאיי שלהם גם בעדכונים האחרונים.
יש עוד כמה סיבות לא נלאה.
מקור:
https://www.prog.co.il/threads/מה-הרעיון-של-אנגולר.156766/page-2
אני רואה יותר ויותר מקומות שכתוב שם דברים דומים.
ומנסה להבין, האכן כצעקתה?מסקרן מאוד באיזה שפה נוספת משתמש הכותב, נשמע שמאזור ג'ונגל js.
הראה לי פיסקה אחת מכאן שלא נכונה ל-C#
גם לה יש API משלה, ו'מייבשת' לך את המוח שלא תצטרך ליצור פתרונות 'יצירתיים' ב-C++. -
@clickone אמר בreact vs angular:
@אהרן
הפיסקה הזו לא נכונה בC#ביום שאנגולר תמות או תיוולד מחדש... כל מה שלמדת יזרק לפח.
C# כאן כדי להישאר (עכשיו @dovid בטח מחייך....)
בשביל להחניף ל @dovid תענה תשובה שלא מן הענין
כתוב 'ביום שהיא תעלם', לא שהיא תעלם .להיפך זה תהליך התבגרות (אותה אני מתחיל בעקבות הפנמת דברי @dovid ) לחפש פתרונות מקיפים ומסודרים.
כמפתח C#, הדבר האחרון שאתה רוצה זה התענוג לגמישות אינסופית 'שאפשר להחליף כל רכיב בספריה מתחרה'
תחטוף חום מלהחליט בכל שורה באיזה פתרון לבחור. -
מסכים עם @avr416 בקשר ליתרונות של אנגולר 2 וטייפסקריפט, אבל העוצמה של אנגולר 2 היא גם חסרון, אם אני צריך דף פשוט עם כמה בינדינגים וכמה ngFor זה ממש בל תשחית לרתום את המרכבה של אנגולר 2 בשביל זה, חוץ מהמורכבות של הסביבת פיתוח, כל טעינת דף באנגולר 2 דורשת טעינת סקריפט כבד ואיתחול של מאות מחלקות, וזה יכול לקחת כמה שניות שאין להם הצדקה, לעומת זה באנגולר 1 זה פשוט לשים תגית סקריפט וכמה שורות קוד בודדות, אפשר אפילו בפידל לעשות אנגולר 1, בשביל דוגמת קוד נורמלית באנגולר 2 צריך לטעון plnkr או stackblitz כבדים. אז כדי להצדיק שימוש באנגולר 2 צריך שזה יהיה אפליקציה ממש מורכבת, אז אתה נהנה מהסדר והשכלול של אנגולר 2. כנלע"ד
ואגב, מטריאל עובד מצוין גם באנגולר 1, יותר פשוט ואם אני לא טועה יש לו יותר מרכיבים מאנגולר 2 -
@אהרן אמר בreact vs angular:
כתוב 'ביום שהיא תעלם', לא שהיא תעלם .
C# לכאורה לא תיעלם בזמן הקרוב.
הסיכוי שאנגולר תיעלם בעוד עשור יותר גדול מהסיכוי שC# תיעלם.
ע"ע פלאש, סילברלייט ועוד.....ומה שכתבתי ש @dovid יחייך, זה כי הוא אמר לי שיבוא יום שאני לא יבין איך לא כתבתי בC# עד היום.
בינתיים אני כותב המון בC#, ועדיין לא ממש נהנה... (לפחות לא לעומת VB.NET)