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

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

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

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

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

    @liy770
    בתוך main.js:

    Vue.prototype.$value = value;
    
    liy770L ב 2 תגובות תגובה אחרונה
    3
    • 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
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום