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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. Vue.js | הגדרת משתנה גלובלי

Vue.js | הגדרת משתנה גלובלי

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 5 כותבים 455 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • liy770L מנותק
    liy770L מנותק
    liy770
    השיב לShaya ב נערך לאחרונה על ידי
    #3

    @Shaya אמר בVue.js | הגדרת משתנה גלובלי:

    @liy770
    בתוך main.js:

    Vue.prototype.$value = value;
    

    אני יכול לערוך אותו ע״י this.$value = "a"?
    ניסיתי וזה לא עבד...

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

      @liy770
      https://vuejs.org/api/application.html#app-config-globalproperties

      app.config.globalProperties.msg = 'hello'
      

      זה מיועד לשמירת ערך קבוע שיהיה זמין בכל הדפים.
      אם אתה רוצה ערך שיהיה ניתן להגדרה ושינוי בכל מקום תשתמש בקובץ חיצוני עם ref עיין כאן או עם vuex / pinia

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

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

        @Shaya אמר בVue.js | הגדרת משתנה גלובלי:

        בתוך main.js:

        Vue.prototype.$value = value;
        

        זה רק בvue2

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

        תגובה 1 תגובה אחרונה
        1
        • yossizY מנותק
          yossizY מנותק
          yossiz
          השיב לliy770 ב נערך לאחרונה על ידי yossiz
          #6

          @liy770 זה כבר לא קשור ל-VUE אלא ל-JS.

          יש הבדל ב-JS בין קריאה של שדה לכתיבה לתוך שדה.
          בקריאה, אם השדה לא קיימת אז JS בודק את שרשרת הפרוטוטייפים, ומחזיר את הערך משם אם זה קיים שם.

          לעומת זאת, בכתיבה לשדה, זה תמיד יהיה על האובייקט עצמו ולא על הפרוטוטייפ.

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

          יש שתי פתרונות לצורך שלך:

          ℹ אני מתייחס ל"צורך" בצורה צרה מאוד, כלומר רק לצורך המוצהר של "ערך גלובלי שאני אוכל לגשת אליו מכל קובץ vue בפרוייקט הזה באמצעות this.$value". יש דרכים יותר טובות לניהול state גלובלי

          א) תוכל לכתוב לשדה על ידי this.constructor.prototype.$value
          ב) להגדיר ש-$value הוא מסוג אובייקט ותמיד תיגש לשדה בתוכו, כך תקבל תמיד גם בכתיבה וגם בקריאה את אותה שדה.

          Vue.prototype.$values = { value };
          

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          liy770L תגובה 1 תגובה אחרונה
          5
          • liy770L מנותק
            liy770L מנותק
            liy770
            השיב לyossiz ב נערך לאחרונה על ידי
            #7

            @yossiz אמר בVue.js | הגדרת משתנה גלובלי:

            ב) להגדיר ש-$value הוא מסוג אובייקט ותמיד תיגש לשדה בתוכו, כך תקבל תמיד גם בכתיבה וגם בקריאה את אותה שדה.

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

            ח yossizY 2 תגובות תגובה אחרונה
            0
            • ח מנותק
              ח מנותק
              חוקר
              השיב לliy770 ב נערך לאחרונה על ידי
              #8

              @liy770 אמר בVue.js | הגדרת משתנה גלובלי:

              (אני צריך משתנה שאני יוכל לגשת אליו מכל קובץ בפרוייקט)

              בשביל יש את store

              תגובה 1 תגובה אחרונה
              0
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לliy770 ב נערך לאחרונה על ידי yossiz
                #9

                @liy770 התכוונתי שתעשה ככה:
                בקובץ הראשי:

                Vue.prototype.$values = { xyz: "xyz" };
                

                בגישה לערך מקובץ אחר:

                this.$values.xyz
                

                כתיבה לערך:

                this.$values.xyz = "abc"
                

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

                xyz.js

                let xyz = "xyz"
                
                export function setXyz(val) {  xyz = val }
                
                export function getXyz() { return xyz }
                

                והשימוש:

                import { getXyz, setXyz } from './xyz'
                
                let xyz = getXyz
                setXyz(xyz + "123")
                

                אם אתה רוצה שהערך יהיה ריאקטיבי (כלומר שהאפליקציה תגיב לשינויים בערך) צריך להשתמש בשירותים של vue לעשות אותו ריאקטיבי, אני לא כל כך מכיר

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                liy770L תגובה 1 תגובה אחרונה
                2
                • liy770L מנותק
                  liy770L מנותק
                  liy770
                  השיב לyossiz ב נערך לאחרונה על ידי
                  #10

                  @yossiz תודה אבל משום מה אני מקבל ערך ריק...

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

                    @liy770 אמר בVue.js | הגדרת משתנה גלובלי:

                    @yossiz תודה אבל משום מה אני מקבל ערך ריק...

                    אם אתה בvue 3 זה לא יעבוד לך
                    תכתוב כך

                    app.config.globalProperties.msg = {xyz:xyz}
                    

                    ועיין מה שכתבתי לעיל

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

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

                      @ב-ל אמר בVue.js | הגדרת משתנה גלובלי:

                      @liy770 אמר בVue.js | הגדרת משתנה גלובלי:

                      @yossiz תודה אבל משום מה אני מקבל ערך ריק...

                      אם אתה בvue 3 זה לא יעבוד לך

                      וראה מה שכתבתי לעיל

                      vue2

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

                      בא תתחבר לדף היומי!
                      • התחברות

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

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