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

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

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

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

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

    S ב 2 תגובות תגובה אחרונה
    0
  • 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
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
  • התחברות

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

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