@אביי לא ברור במה אתה מתקשה. כתבת בעצמך שזה נקרא combobox. יש הרבה ספרייות של קומפוננטות ויו שכוללים קומפוננטה כזאת.
אתה מתקשה במציאת ספרייה? אולי אתה רוצה לממש בעצמך?
yossiz
-
קומבוקס בvue -
העברת props למסלולים מקבילים בnextJS - איך?עדכון חשוב: עכשיו ראיתי את זה בתיעוד של nextjs
Sharing data between components
When fetching data on the server, there may be cases where you need to share data across different components. For example, you may have a layout and a page that depend on the same data.
Instead of using React Context (which is not available on the server) or passing data as props, you can use fetch or React's cache function to fetch the same data in the components that need it, without worrying about making duplicate requests for the same data. This is because React extends fetch to automatically memoize data requests, and the cache function can be used when fetch is not available.
Passing data between a parent layout and its children is not possible. However, you can fetch the same data in a route more than once, and React will automatically dedupe the requests without affecting performance.
עיין עוד:
-
העברת props למסלולים מקבילים בnextJS - איך?@nach האם הסתדרת כבר? יש לי תשובה אבל עם התנצלות מראש: אין לי כמעט נסיון בריאקט ואני כלל לא מכיר את nextjs
ועכשיו לתשובה: איך שאני מבין, השאלה פחות קשורה ל-nextjs ויותר לנושא הכללי של slots ב-React. ספריית nextjs משתמשת פה ב-pattern נפוץ - slots. הכוונה הוא, העברת חלקים של ה-markup של הקומפוננט בצורה דינאמית דרך prop.
השאלה שלך הוא איך להעביר ל-slot משתני state רלוונטיים.
כאשר מנסחים את השאלה בצורה זו אפשר יותר בקלות למצוא תשובות ברשת
מה שהעליתי בחכתי בנושא:
בוויו slots הם "אזרח מדרגה ראשונה" (first class citizen), כלומר, ה-pattern מוכר ונתמך ישירות על ידי הפריימוורק, בריאקט לא כל כך (יש הצעה פה להוסיף תמיכה לזה. בינתיים לא התקבלה), אבל עדיין אפשר להשתמש ב-pattern בצורה די קלה.
הנה כתבה על הנושא
עם התייחסות מפורשת לשאלה שלך בקטע זה
(התשובה בקצרה:useContext
)
מקווה שזה עוזר -
שגיאה בהעלאת טקסט לקובץ בימות המשיחיש פה משהו מעניין
למרות שכאשר מעבירים מחרוזת ל-fetch (או ל-axios) הם עושים עליו encodeURI אוטומטי, אבל במקרה של ירידת שורה הם מורידים אותו
נסיתי קצת להתחקות אחרי המקור להתנהגות זו
מצאתי פהRemove all ASCII tab or newline from input.
עיין גם https://security.stackexchange.com/questions/234662/
-
שגיאה בהעלאת טקסט לקובץ בימות המשיחאופסס... טעיתי.
במושכל ראשון חשבתי שבטח הבעיה היא שיש backtick במקום גרש
אבל אחרי בדיקה אני רואה שגם ב-template string (מחרוזת בתוך backtick-ים) אמור לעבוד\n
במקום ירידת שורה
אז כנראה שיש הסבר אחר למה לא עובד עבור @avi-rz
אולי צריך לעשות urlencode למחרוזת לפני ההעברה ל-axiosעריכה: אכן זו ההסבר, axios מוריד ירידות שורה. צריך קודם לעשות encodeURI על המחרוזת ואז להעביר ל-axios
-
שגיאה בהעלאת טקסט לקובץ בימות המשיח@ivrtikshoret כתב בשגיאה בהעלאת טקסט לקובץ בימות המשיח:
תנסה לשים ב שורה 6 גרשיים ולא גרש
רק למען הדיוק: ההבדל לא בין גרש לגרשיים אלא בין backtick (תו זה: `) לגרש/גרשיים (
"
/'
)
אין שום הבדל בין גרש לגרשיים ב-JS -
מכונה וירטואלית עם מערכת יוניקס (לא לינוקס)@קן-ציפור כתב במכונה וירטואלית עם מערכת יוניקס (לא לינוקס):
אז בעצם מה "מאחד" את כל יוצאי יוניקסים?
https://www.opengroup.org/certifications/unix
https://en.wikipedia.org/wiki/Single_UNIX_Specification@קן-ציפור כתב במכונה וירטואלית עם מערכת יוניקס (לא לינוקס):
הקרנל? המעטפת?
לא הקרנל או המעטפת עצמם אלא הפיצ'רים שהם חושפים למשתמשים ותוכנות.
לא קראתי את התקנים. אבל אני משער שמדובר בעיקר על ה-system calls שקרנל חושף, הפקודות שקיימים במערכת והתנהגותם, ותחביר של ה-shell -
מכונה וירטואלית עם מערכת יוניקס (לא לינוקס)@קן-ציפור אין יוניקס אחד. זו משפחה. גם macOS נחשב חלק מהמשפחה (אפילו יותר מלינוקס כי יש להם "תו תקן" של תקן POSIX שנועד לאחד את היוניקסים). גם לינוקס.
-
ספריית Sequelize: איך למנוע שליחת שדות מסויימות לצד לקוח@dovid כתב בספריית Sequelize: איך למנוע שליחת שדות מסויימות לצד לקוח:
על ידי Auto Mapper
אתה מתכוון לזה?
-
ספריית Sequelize: איך למנוע שליחת שדות מסויימות לצד לקוחתיאור הבעיה
על פי רוב בממשקי API, האובייקטים שה-API שולח משקפים במידה רבה את המבנה של ה-DB. עד כדי כך, שלרוב התשובה של ה-API הוא פשוט ייצוג JSON של שורות ב-DB.
מתכנתים עצלנים כמו רוב עמך (כולל אני) בד"כ פשוט עונים לבקשות API עם תבנית זו:- שאילתת DB לקבל את הישויות הרלוונטיות
- הרצת לוגיקה על היישויות, כמו בדיקת הרשאות, או עדכון נתונים וכו'
- סיריאליזציה של ישות ה-DB שרלוונטי לתשובה ל-JSON, ושליחה לקליינט
הבעיה היא שקורה הרבה שהשדות שנצרכים עבור שלב 2 שונים מהשדות שרוצים לשלוח בשלב 3
למשל בבקשת login בד"כ שולפים שורה שמייצגת משתמש, ועבור שלב 2 רוצים לבדוק שהסיסמה נכונה, ולכן שולפים את השדה שמייצג את ההאש של הסיסמה, אבל בשלב 3 בד"כ לא רוצים לשלוח את זה חזרה לקליינט
עוד דוגמה: אפליקציה ששומרת מפתח API של המשתמש כדי להריץ עבורו פעולות מול צד שלישי, רוצה לשלוף את המידע הזה מה-DB עבור שלב 2 כדי לטפל בבקשות שונות, אבל לא רוצה לשלוח את זה חזרה לקליינט
וכהנה רבות
מצו"ב קוד קצר לטיפול נוח בנושא זה עבור משתמשי Sequelize
הסבר על הפתרון
בספריית Sequelize, כאשר הופכים מודל ל-JSON, מנוע JS משתמש מתחת למכסה בפונקציית
Sequelize.Model.prototype.toJSON
הרעיון הוא שנוסיף שדה סטטית להגדרת המודלים שלנו שמכיל מערך של שדות שצריך תמיד להשמיט מהסיריאליזציה, ונכתובtoJSON
מותאם אישית שלנו שיכבד רשימה זו
כדי שזה יעבוד גם על מודלים מקוננים, נקרא לפונקצייה זו בצורה ריקורסיבית על מודלים מקונניםהנה הקוד
// Override the builtin `toJSON` method to allow hiding certain fields from the client // To hide a field, add it to the `hidden` array on the model's prototype // We recursively call `toJSON` on all included models Sequelize.Model.prototype.toJSON = function () { const includes = this._options.includeNames ?? []; const hiddenKeys = this.hidden ?? []; const values = Object.assign({}, this.get()); for (const hiddenKey of hiddenKeys) { delete values[hiddenKey]; } for (const include of includes) { if (Array.isArray(values[include])) { values[include] = values[include].map((value) => value.toJSON()); } else if (typeof values[include].toJSON === 'function') { values[include] = values[include].toJSON(); } } return values; };
והנה הגדרת מודל לדוגמה:
const User = sequelize.define( 'User', { firstName: { type: DataTypes.STRING, allowNull: false, }, lastName: { type: DataTypes.STRING, }, passwordHash: { type: DataTypes.STRING, } }); User.prototype.hidden = ['passwordHash']
או אם אתה מעדיף קלאסים:
class User extends Model { static hidden = ['passwordHash'] } User.init( { firstName: { type: DataTypes.STRING, allowNull: false, }, lastName: { type: DataTypes.STRING, }, passwordHash: { type: DataTypes.STRING, } }, { sequelize, modelName: 'User', }, );
נ.ב. הקוד נכתב עבור sequelize v6. אני משתמש בשדה פנימית של
Model
(ה-_options.includeNames
). אין הבטחה שהקוד ימשיך לעבוד בגירסאות הבאות של sequelizeעוד הערה:
אני לא חושב שקוד זה מספיק טוב לאפליקציה רצינית
נראה לי שאפליקציה רצינית אמורה להפריד בין הייצוג הפנימי לאובייקטים החיצוניים שנשלחים לקליינט, ולהשתמש בשכבה שיודע להמיר בין אובייקטים פנימיים לאובקטים "חיצוניים"
בפרוייקט אחד שלי השתמשתי ב-https://github.com/typestack/class-transformer לצורך זה -
עזרה | פתיחת דף אינטרנט בחלון מלא@מטעמים הסיבה היא שווינדוס לא יודע איפה למצוא את הקובץ WebPageHost.exe
הפתרון הכי פשוט הוא לכתוב את הנתיב המלא לקובץ (למשלc:\users\user\Downloads\WebPageHost.exe
), או - יותר קל - גרירת הקובץ לתוך החלון השחור יכתוב את הנתיב במיקום הסמן
(קבצים שנמצאים בתקייות מוגדרות, מוכרות על ידי ווינדוס, ואותם אפשר להריץ בלי לכתוב את הנתיב המלא שלהם. אם תרצה בהסבר קשה לעיכול ומלא פרטים מיותרים תוכל לעיין פה) -
מי מיירט ctrl+o?@yossiz כתב במי מיירט ctrl+o?:
צריך לבדוק אחרי הפעלה מחדש כאשר אין את הבעיה אם יש שינוי בזה
@yossiz כתב במי מיירט ctrl+o?:
אני צריך לבדוק מה שונה כאשר אין בעיה.
-
מי מיירט ctrl+o?@אביי כתב במי מיירט ctrl+o?:
לאחר הפעלה מחדש או בSafe Mode זה כן עובד?
כן
תודה לכולם על התשובות
חיכיתי שזה יקרה שוב כדי לבדוק את הרעיונותהיום זה קרה שוב
בדקתי עם תוכנות אלו:
-
https://github.com/marius-sucan/KeyPress-OSD
הוא מזהה את הלחיצות
הוא מזהה את תוכנת היעד משום מה רק על ה-down של הקונטרול
צריך לבדוק אחרי הפעלה מחדש כאשר אין את הבעיה אם יש שינוי בזה -
https://github.com/ITachiLab/hotkey-detective
לא מצא כלום, למרות שבקיצורים אחרים הוא כן מזהה בהצלחה איזה תוכנה גונבת אותם -
הכי מעניין זה התוצאה של spy++ - כלי נפלא של MS שעוקבת אחרי כל ההודעות שה-message loop של התוכנה מקבל
מבואר בלוג של התוכנה שהמקשים מגיעים לתוכנה
ולמרות זאת התוכנה לא מגיבה
שזה פלא בעיני
אני צריך לבדוק מה שונה כאשר אין בעיה.
-
-
עזרה | פתיחת דף אינטרנט בחלון מלאיש פה כלי שעונה על הדרישות שלך
https://github.com/thgossler/WebPageHost
[קישור ישיר להורדה]זה כלי שורת הפקודה
השימוש הפשוט ככה:WebPageHost.exe open https://www.google.com
יש עוד אפשרויות על ידי דגלים. תריץ
WebPageHost.exe open --help
לקבל רשימה של כל האפשרויותאפשר ליצור קיצור דרך עם הפקודה הרצויה כדי לפתוח את החלון על ידי לחיצה כפולה
-
עזרה | פתיחת דף אינטרנט בחלון מלאתפתח קונסול (ctrl+shift+j) ותכתוב:
open('https://www.google.com', '_blank', 'popup')
-
קוד C# לחילוץ טקסט מקבצי וורד@pcinfogmach אכן אני רואה שקצת מסובך לקבל את המספרים של פיסקאות ממוספרות
(אתה יכול בינתיים למחוק את האיזכורים בקוד ל-NumberingDefinitionsPart מכיון שבסוף אתה לא משתמש בו) -
קוד C# לחילוץ טקסט מקבצי וורד@dovid אחרי שינוי זה: -
@pcinfogmach כתב בקוד C# לחילוץ טקסט מקבצי וורד:
תכלס שיניתי כעת את הקוד שיעבור לשיטה השניה על כל שגיאה
עכשיו הקוד באמת יעבוד על פורמטים אחרים. לפי הקוד הקודם זה עבר לשיטה השניה רק על IOException, ועבור שגיאה של פורמט לא נכון היה טיפול שונה, אני כבר לא זוכר מה היה שם...
-
קוד C# לחילוץ טקסט מקבצי וורדעוד הערה:
מאיפה הרעיון ש:w:br
שווה ל-\v
?
באמת נראה שאתה צודק שוורד ברמה כלשהו מתייחס לתו שמכניסים על ידי shift+return כתו ה-ASCII עם ערך 11
זה נוגע לסקריפטים ב-VBA. אפשר גם לחפש תו כזה על ידי חיפוש של^11
בדקתי בוורד של היום ובייצוא לטקסט הוא מתרגם את זה לירידת שורה נורמלית, אני לא יודע אם זה נכון בכל הגירסאות ההיסטוריות של וורד
בכל מקרה זה תו יחסית נדיר במסמכים -
קוד C# לחילוץ טקסט מקבצי וורדהערה קטנה:
אין לך ירידת שורה בין סוף הטקסט הראשי לתחילת טקסט ההערות
וכן בין סוף הערות שוליים לתחילת הערות סוףעוד הערה קטנה: אני מבין שבצורך שלך זה לא כל כך רלוונטי, אבל לצרכים אחרים היה כדאי לקבל את מספרי ההערות
-
קוד C# לחילוץ טקסט מקבצי וורד@pcinfogmach באיזה מקרה לא עובדת השיטה הראשונה בגלל IOException וצריך לעבור לשיטה השניה?