בוטסטראפ באנגולר
-
ניסיתי בעבר לשלב את הפקדים של מטריאל באנגולר, וזה שילש את משקל הקבצים והאט מאד את זמן הטעינה של הדף.
האם מישהו התנסה בשילוב הפקדים של בוטסראפ? האם זה לא יכביד על האפליקציה? -
@יוסף-בן-שמעון זה לא אמור להיות ככה, אני משתמש הרבה במטריאל ולא חווה טעינה איטית.
במטריאל אתה טוען רק את מה שאתה צריך, ואתה יכול להשתמש בטעינה עצלה שלא תשפיע על הביצועים.
כמו כן, תנסה לקמפל במצב --prod, אתה אמור לקבל קבצים ממש רזים.
כמובן, הכל בהנחה שמדובר על אנגולר ולא על אנגולרjs שאינני מכיר.
-
@avr416 אמר בבוטסטראפ באנגולר:
במטריאל אתה טוען רק את מה שאתה צריך, ואתה יכול להשתמש בטעינה עצלה שלא תשפיע על הביצועים.
אני צריך הרבה מודולים, ולמעשה זה הכביד, גם מיניפיקציה ו AOT לא הועילו הרבה, איך אפשר להשתמש בטעינה עצלה עם מטריאל? כל תצוגה באפליקציה משתמשת בחלק מהמודולים של מטריאל, האם צריך לעבור ידנית על כל תצוגה ולבדוק במה היא משתמשת וליצור עבורה טעינה?
-
@יוסף-בן-שמעון בהנחה ולא הכל מוצג בו זמנית, אתה יכול ליצור מודול לכל ראוטינג.
ככה אתה משתמש בטעינה עצלה שטוענת את המודול רק כשמנווטים אליו.
בכל מודול אתה טוען רק את במטריאל שאתה משתמש בו.אם תפרט יותר מה יש לך, אולי נוכל לעזור יותר
-
@יוסף-בן-שמעון כן.
במצב כזה הייתי טוען במודול הראשי כבר את B, כיון שכל הדפים משתמשים בו.
אא"כ יש לך דפים שלא.מה שקורה מאחורי הקלעים, זה שכאשר אתה עושה בילד, הוא בונה לך את הבנדל חתיכות חתיכות, כך שרק החתיכה שאתה צריך נטענת כשצריך אותה. לכן גם בגרסאות האחרונות, מטריאל עברו לImport של כל רכיב בנפרד, כדי שלא תטען סתם קוד שאתה לא משתמש בו. לדוגמא:
import {MatInputModule} from '@angular/material/input';
אתה לא טוען את כל תיקיית מטריאל, אלא רק את המודול של אינפוט, וכן על זה הדרך.
רק אל תשכח בקובץ של הראוטינג להשתמש בטעינה עצלה, אחרת בכל מקרה הכל יטען לך מראש.
דוגמה:{ path: 'admin', loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule), },