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

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

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

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

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

    איך אני מגדיר ערך גלובלי שאני אוכל לגשת אליו מכל קובץ vue בפרוייקט הזה באמצעות this.$value?

    S מנותק
    S מנותק
    Shaya
    כתב ב נערך לאחרונה על ידי
    #2

    @liy770
    בתוך main.js:

    Vue.prototype.$value = value;
    
    liy770L ב 2 תגובות תגובה אחרונה
    3
    • S Shaya

      @liy770
      בתוך main.js:

      Vue.prototype.$value = value;
      
      liy770L מנותק
      liy770L מנותק
      liy770
      כתב ב נערך לאחרונה על ידי
      #3

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

      @liy770
      בתוך main.js:

      Vue.prototype.$value = value;
      

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

      yossizY תגובה 1 תגובה אחרונה
      0
      • liy770L liy770

        איך אני מגדיר ערך גלובלי שאני אוכל לגשת אליו מכל קובץ vue בפרוייקט הזה באמצעות this.$value?

        ב מנותק
        ב מנותק
        ב.ל
        כתב ב נערך לאחרונה על ידי ב.ל
        #4

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

        app.config.globalProperties.msg = 'hello'
        

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

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

        תגובה 1 תגובה אחרונה
        0
        • S Shaya

          @liy770
          בתוך main.js:

          Vue.prototype.$value = value;
          
          ב מנותק
          ב מנותק
          ב.ל
          כתב ב נערך לאחרונה על ידי
          #5

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

          בתוך main.js:

          Vue.prototype.$value = value;
          

          זה רק בvue2

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

          תגובה 1 תגובה אחרונה
          1
          • liy770L liy770

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

            @liy770
            בתוך main.js:

            Vue.prototype.$value = value;
            

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

            yossizY מנותק
            yossizY מנותק
            yossiz
            כתב ב נערך לאחרונה על ידי yossiz
            #6

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

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

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

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

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

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

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

            Vue.prototype.$values = { value };
            

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

            liy770L תגובה 1 תגובה אחרונה
            5
            • yossizY yossiz

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

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

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

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

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

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

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

              Vue.prototype.$values = { value };
              
              liy770L מנותק
              liy770L מנותק
              liy770
              כתב ב נערך לאחרונה על ידי
              #7

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

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

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

              ח yossizY 2 תגובות תגובה אחרונה
              0
              • liy770L liy770

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

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

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

                ח מנותק
                ח מנותק
                חוקר
                כתב ב נערך לאחרונה על ידי
                #8

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

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

                בשביל יש את store

                תגובה 1 תגובה אחרונה
                0
                • liy770L liy770

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

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

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

                  yossizY מנותק
                  yossizY מנותק
                  yossiz
                  כתב ב נערך לאחרונה על ידי 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
                  • yossizY yossiz

                    @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 מנותק
                    liy770L מנותק
                    liy770
                    כתב ב נערך לאחרונה על ידי
                    #10

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

                    ב תגובה 1 תגובה אחרונה
                    0
                    • liy770L liy770

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

                      ב מנותק
                      ב מנותק
                      ב.ל
                      כתב ב נערך לאחרונה על ידי ב.ל
                      #11

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

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

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

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

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

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

                      liy770L תגובה 1 תגובה אחרונה
                      0
                      • ב ב.ל

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

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

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

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

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

                        liy770L מנותק
                        liy770L מנותק
                        liy770
                        כתב ב נערך לאחרונה על ידי
                        #12

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

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

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

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

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

                        vue2

                        תגובה 1 תגובה אחרונה
                        1
                        תגובה
                        • תגובה כנושא
                        התחברו כדי לפרסם תגובה
                        • מהישן לחדש
                        • מהחדש לישן
                        • הכי הרבה הצבעות


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

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

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