• דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

ראוטר vue, ניתוב למרות הסתרת פרמטרים

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 4 כותבים 179 צפיות
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    כתב ב נערך לאחרונה על ידי chagold
    #1

    במקום הכשלון כאן,
    אני מעוניין בניתוב דינמי (עפ"י הדומיין), ושזה לא ישתקף בurl.

    לדוגמא אם יש לי ראוטר כזה -

    const routes = [
    	{
    		path: '/',
    		name:'a',
    		component: a,
    		redirect: '/',
    	},
    	{
    		path: '/',
    		name:'b',
    		component: b,
    		redirect: '/',
    		
    	}]
    

    יש אפשרות להגדיר בrouter.beforeEach להיכן הוא ינותב?

    chagoldC תגובה 1 תגובה אחרונה
    0
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    השיב לchagold ב נערך לאחרונה על ידי chagold
    #2

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

    הוספה: ולא מצאתי דרך לעשות את הבקשה לפני ריצת כל הקוד

    תודה לכולם.

    zvizviZ תגובה 1 תגובה אחרונה
    0
  • zvizviZ מנותק
    zvizviZ מנותק
    zvizvi
    השיב לchagold ב נערך לאחרונה על ידי zvizvi
    #3

    @chagold

    router.beforeEach(async (to) => {
      if (to.meta.foo && bar ...) {
        return '/home';
      }
      if (to.meta.authRequired) {
        try {
          await checkAuthentication();
        } catch {
          return '/login';
        }
      }
    });
    

    מה שהפונקציה תחזיר לשם הוא ינותב, ואם לא יוחזר כלום הRoute ימשיך בניתוב המקורי.

    https://zvizvi.xyz

    chagoldC תגובה 1 תגובה אחרונה
    2
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    השיב לzvizvi ב נערך לאחרונה על ידי chagold
    #4

    חושב כעת לכאו' על פתרון טוב יותר -
    ליצור דינמית את כל הראוטר מותאם ולא סטטי.

    ב תגובה 1 תגובה אחרונה
    0
  • ב מנותק
    ב מנותק
    ב.ל
    השיב לchagold ב נערך לאחרונה על ידי
    #5

    @chagold אמר בראוטר vue, ניתוב למרות הסתרת פרמטרים:

    חושב כעת לכאו' על פתרון טוב יותר

    אולי תפרט יותר מה הבעיה שאתה מנסה לפתור?

    ליצירת קשר - baruchlamdan@gmail.com

    chagoldC תגובה 1 תגובה אחרונה
    1
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    השיב לב.ל ב נערך לאחרונה על ידי chagold
    #6

    @ב-ל

    אני רוצה שצד הקליינט (vue) יוכל לשמש כמה דומיינים, של כמה סוגי פרוייקטיים (כיון שיש הרבה קומפוננטות שיכולות להיות תואמות למרות שהם פרוייקטים שונים).
    אבל כן רציתי שהקונטיינור (ג"כ קומפוננט) של תצוגת הקליינט יהיה שונה בין הפרוייקטים.
    ניסיתי באשכול הנזכר לעיל לעשות שהimportים יהיו מותנים (לפי סוג הפרוייקט, שהוא תלוי במידע שאני מקבל מהשרת) ולא הצלחתי שם כיון שהראוטר רץ עוד לפני שהספקתי לקבל את המידע מהשרת.

    אז לאחר שהשלמתי עם זה שירוץ קוד הimport של הקונטיינורים של פרוייקטים שאינם קשורים לפרוייקט שלי, אבל אני מנסה עכשיו שלפחות הניתוב (בין המסלולים שהroutes) יוגדר בצורה נכונה. לדוגמא, כיון שגם סוג פרוייקט א' הurl הפנימי מתחיל ב/ וגם בסוג פרוייקט ב' (וכ"א מביא קומפוננט שונה לתצוגה), א"כ אני סוכ"ס צריך להגדיר איזה מהם ישמש לפרוייקט א' ואיזה לפרוייקט ב'.


    בפוסט הקודם כתבתי שיצירה דינמית של ראוטר תפתור את הבעיה, (כיון שאני יכול להריץ אותו על בסיס מידע שמגיע מהשרת). ובמחשבה שניה, היא גם תפתור את הבעיה הראשונה, כיון שככל וריצת הקוד עבור הראוטר ממתינה, א"כ אני יכול גם להריץ אותו רק אחרי שאריץ את התצוגות שצריך לפרוייקט.

    תודה.

    ח תגובה 1 תגובה אחרונה
    0
  • ח מנותק
    ח מנותק
    חוקר
    השיב לchagold ב נערך לאחרונה על ידי
    #7

    @chagold
    מה אתה קורה דינאמית?
    אני למשל את קובץ src/navigation/horizontal/index.js של התפריטים עשיתי כך:

    
    // eslint-disable-next-line import/no-cycle
    import kkkkkDashboard from './kkkkkDashboard'
    // eslint-disable-next-line import/no-cycle
    import kkkkkClient from './kkkkkClient'
    
    // eslint-disable-next-line import/no-mutable-exports
    let nav
    
    const { host } = window.location
    const parts = host.split('.')
    const domainLength = 3 // route1.example.com => domain length = 3
    if ((parts.length === (domainLength - 1) && host !== 'kkkkk.client') || parts[0] === 'www') {
      nav = kkkkkDashboard
    } else if (parts[0] === 'client' || host === 'kkkkk.client') {
      nav = kkkkkClient
    } else {
      nav = kkkkkDashboard
    }
    console.log(nav)
    
    // Array of sections
    export default [...nav]
    
    

    ובכל קובץ שמתי את התפריטים הרלוונטים

    export default [
      {
        title: 'דף הבית',
        icon: 'HomeIcon',
        route: 'main',
        action: 'user',
        resource: 'ACL',
      },
      {
        title: 'אודות',
        icon: '',
        route: 'about',
        action: 'user',
        resource: 'ACL',
      },
      {
        title: 'תנאי שימוש',
        icon: '',
        route: 'terms',
        action: 'user',
        resource: 'ACL',
      },
      {
        title: 'יצירת קשר',
        icon: '',
        route: 'contact_us',
        action: 'user',
        resource: 'ACL',
      },
    ]
    

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

    chagoldC תגובה 1 תגובה אחרונה
    1
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    השיב לחוקר ב נערך לאחרונה על ידי chagold
    #8

    @חוקר אני מבין שאצלך זה חלוקה בין צד שרת ללקוח וכיו"ב (כשגם אם הדומיין הוא שונה אבל סוג האתר הוא אותו דבר), ואתה יכול להבדיל ביניהם על פי מניפולציות על הדומיין.

    כיון שאני מעוניין שזה ישמש לכמה סוגי פרוייקטים, ולא שייך להחזיק בקליינט את המידע על כל הדומיינים ואיזה סוגי פרוייקטים הם, לכן דבר ראשון צריך לקבל נתונים מהשרת (על סוג הפרוייקט). (וכנ"ל שבגלל הסיכרוניות של js א"א לקבל את הנתונים לפני ריצת הקוד של האימפורטים).

    תגובה 1 תגובה אחרונה
    0

  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.