โŒ

Reading view

There are new articles available, click to refresh the page.

ๆœ‰ไป€ไนˆๆ–นไพฟ็š„ๆ–นๅผ ๅฐ† ๆ•ดไธช็ฝ‘้กตๅ†…ๅฎน ๅ–‚็ป™ ChatGpt/Geimini ็ญ‰ AI

xboxv:

่ƒŒๆ™ฏ

ๆœ‰ๅ†™ AI ไธๆ”ฏๆŒ่ฎฟ้—ฎๅค–้ƒจ้“พๆŽฅ, ๆœ‰ไบ› AI ่ฎฟ้—ฎ url ่งฃ่ฏป็š„ๅ†…ๅฎนๅ’Œๅฎž้™…็ฝ‘้กต็š„ๅ†…ๅฎนๆ นๆœฌไธไธ€่‡ด.

ๆฏ”ๅฆ‚ ๅฏนไบŽ่ฟ™ไธช url https://github.com/prisma/docs/issues/6284 geimin ่ฟž ็ฝ‘้กต็š„ๆ ‡้ข˜ ้ƒฝๆฒกๆœ‰่งฃ่ฏป ๆญฃ็กฎ.

ๆœ‰ไธ”็ฝ‘็ซ™ไฝฟ็”จไบ† ๆœๅŠก็ซฏๆธฒๆŸ“ๆŠ€ๆœฏ, ๆ‰€ไปฅๅฆ‚ๆžœไฝ ๅชๆ˜ฏ่ฎฟ้—ฎ URL, ๅฐฑไผšๅพ—ๅˆฐไธ€ไธช ๅพˆ็ฎ€็Ÿญ็š„ HTML, ๅฎž้™…ๆ•ดไธช็ฝ‘้กต็š„ๅ†…ๅฎนๆ˜ฏ้œ€่ฆ็ญ‰ๅพ…ๆตๅผๆธฒๆŸ“็ป“ๆŸไน‹ๅŽ ๆ‰่ƒฝ็œ‹ๅˆฐๆ•ดไธช็ฝ‘้กต็š„ๅฎž้™…ๅ†…ๅฎน, ็”š่‡ณๆœ‰ไบ›ๅ†…ๅฎนๆ˜ฏๆ‡’ๅŠ ่ฝฝ, ้œ€่ฆๆปšๅŠจๅˆฐ่ฟ™ไธชไฝ็ฝฎๆ‰ไผšๆธฒๆŸ“ๅ…ทไฝ“็š„ๅ†…ๅฎน. ๆ‰€ไปฅๅƒ ้ฃžไนฆ/่ฏญ้›€่ฟ™ๆ ท็š„็ฝ‘้กตๅ‰ชๅˆ‡ๆ’ไปถ ่ฏ•ไบ†ไธ€ไธ‹ๆ— ๆณ•ๅ‰ช่ดดๅˆฐๆ•ดไธช็ฝ‘้กต็š„ๅ†…ๅฎน, ๅชๅ‰ชๅˆ‡ๅˆฐไบ†ไธ€ๅฐ้ƒจๅˆ†ๅ†…ๅฎน.

ๆ–นๆกˆไธ€ ๆˆชๅฑๆ•ดไธช็ฝ‘้กตๆˆ–่€… ๅฐ†็ฝ‘้กตไฟๅญ˜ไธบ pdf

่ฟ™ไธค็งๆ–นๅผ ๅฏนไบŽ AI ่งฃๆž PDF ๆˆ–่€…ๅ›พ็‰‡้ƒฝๆ˜ฏ้œ€่ฆไฝฟ็”จ ocr, ไป–ไปฌๆ— ๆณ•่ฏปๅ–ๅˆฐๆ–‡ๅญ—็š„ url ้“พๆŽฅ,็ฝ‘้กตไธญ็š„ๆ–‡ๅญ—็š„้“พๆŽฅ ไธขๅคฑไบ†.ๅญ˜ๅœจ็ผบ็‚น.

ๆ–นๆกˆไบŒ ไฟๅญ˜ไธบ markdown.

  1. ็ฎ€ๆ‚ฆ่ฟ™ไธชๆ’ไปถ ไธๅฅฝ็”จ, ๅพˆๅคš็ฝ‘็ซ™ๅช่ƒฝไฟๅญ˜ๅˆฐ ้žๅธธๅฐ็š„ไธ€้ƒจๅˆ†ๅ†…ๅฎน. ไธขไธ‰่ฝๅ››.
  2. obsidian ็š„ web ๅ‰ชๅˆ‡ๆ’ไปถ, ็›ฎๅ‰ๅœจ็”จ่ฟ™ไธชๆ’ไปถๆฅๅฐ†็ฝ‘้กตไฟๅญ˜ไธบ markdown.

ๆ–นๆกˆไธ‰

ๆœ‰ไธ€ไบ›ๅœจ็บฟๅฐ† url ่ฝฌไธบ markdown ็š„็ฝ‘็ซ™, ่ฏ•ไบ†ๅ‡ ไธชๆ•ˆๆžœ้ƒฝไธ็†ๆƒณ, ไป–ไปฌ็š„้—ฎ้ข˜้ƒฝๆ˜ฏๅช่Žทๅ–ๅˆฐไบ†้ƒจๅˆ†็ฝ‘้กตๅ†…ๅฎน. ๅคงๆฆ‚็އๆ˜ฏๅ› ไธบไธŠๆ–‡ๆๅˆฐ็š„ๆœๅŠก็ซฏๆธฒๆŸ“ ๆตๅผไผ ่พ“็š„ๅŽŸๅ› .

้—ฎ้ข˜:

  1. ๆœ‰ไป€ไนˆๅฅฝ็š„ๆ–นๆกˆๅฐ† ๆ•ดไธช็ฝ‘้กต็š„ๅ†…ๅฎนๅ–‚็ป™ ai
  2. ๆœ‰ไป€ไนˆๆ›ดไธบๅฅฝ็”จๆ–นๆกˆๅฐ† ็ฝ‘้กต่ฝฌไธบ markdown. ๅฏนไบŽ่พ“ๅ‡บ็š„ๆ ผๅผไธๅ…ณๆณจ, ๅ…ณๆณจ็‚นๆ˜ฏ็ฝ‘้กตๅ†…ๅฎนไธ่ฆไธขๅคฑ.

ๆœ€่ฟ‘ๆ‹›ไบบ็š„ๅ…ฌๅธๆ˜ฏไธๆ˜ฏ 996 ๅคš๏ผŸ

wtsm: ๅˆš่ฟ›ๆฅ็š„่ฟ™ๅฎถๅ…ฌๅธ๏ผŒๅˆš่ฟ›ๆฅๆ—ถ้ข†ๅฏผ่ฏดๅพˆๅฐ‘ๅŠ ็ญไป–ไนŸๅๅฏนๅŠ ็ญ๏ผŒ็ป“ๆžœ่ฟ›ๆฅไธ€ไธชๅคšๆœˆไบ†ไธ€็›ด 996 ๅŠ ็ญใ€‚ๅˆšๆ”ถๅˆฐ็š„ไธ€ไธช offer ๏ผŒ่ฏด่ฆ 996 ่ตถ้กน็›ฎ๏ผŒ้’ฑๆ›ดๅฐ‘ไบ†๏ผŒๆ˜ฏไธๆ˜ฏ้ƒฝๆ˜ฏๅ› ไธบ 996 ไนŸๆžไธๅฎŒ้กน็›ฎๆ‰ไผšๆ‹›ไบบ

ไธๅไธๅฟซ๏ผŒๅ››ๅนดๅฐๅŽ‚ๅผ€ๅ‘่ทณๅคงๅŽ‚็š„่–ช่ต„ๅ˜ๅŒ–

Qiuchi: ็œŸๆ˜ฏๆ— ่ฏญๅ•Š๏ผŒๆœฌไบบ 17 ๅฑŠๅŒ้žๆœฌ็ง‘๏ผŒไปŽๅ…ฅ่Œๅผ€ๅง‹ๅ‡  k*ๅๅ‡ ่–ชๆถจๅˆฐๅๅ‡  k ไบŒๅๅ‡ ่–ช๏ผŒๅ› ็ง็งๅŽŸๅ› ๆƒณๅŽปๅคงๅŽ‚๏ผŒ้ข่ฟ›ๅŽปไธ€ๅฎถ๏ผŒๆœฌๆฅไปฅไธบ่‡ณๅฐ‘่ƒฝๆ‹ฟไธช่Œ็บงๆ ‡ไปทไธ‹้™๏ผŒ็ป“ๆžœ็œ‹ไบ†ๆตๆฐดๅ‘Š่ฏ‰่ฏดๅกๆถจๅน… 30%๏ผŒๅกๅฎŒ้ƒฝ่ทŸๆˆ‘ไปŠๅนดๅŠ ๅฎŒ่–ชๅทฎไธไบ†ไฟฉ w ๏ผŒๅคงๅŽ‚ๅˆ 995 ๏ผŒ็ฎ—ๆ—ถ่–ช็š„่ฏ็”š่‡ณ่ฟ˜ๅฐ‘ไบ†๏ผŒ้ƒฝไธ็Ÿฅ้“่ƒฝ่ขซๅบ”ๅฑŠๅ€’ๆŒ‚ๅˆฐๅ“ช้‡ŒๅŽป๏ผŒๆˆ‘็œŸ็š„ไผš่ฐข

่Šฑไธคๅคฉๆ”’ไบ†ไธชๅฐๆธธๆˆ็ซ™๏ผŒๅŽ็ซฏไป”็”จ AI ่กฅไบ†ๅ‰็ซฏ็š„้”…

ThirdPer:

ๅˆš่Šฑไธคๅคฉๆฃ้ผ“ไบ†ไธชๅฐๆธธๆˆ็ซ™๏ผš https://www.geometry-dash-wave.live/ ๏ผŒไธป่ฆๆƒณๆ”ถ้›†ไบ†ไธ€็ณปๅˆ—ๅ›ด็ป• Geometry Dash ้ฃŽๆ ผ็š„ๅฐๆธธๆˆ๏ผŒๅŠจไฝœใ€่งฃ่ฐœใ€ๅก็‰Œใ€่ต›่ฝฆ็ฑป้ƒฝๆœ‰๏ผŒ็›ฎๅ‰ๆ•ด็†ไบ† 18 ๆฌพ๏ผŒๅ…ˆๆ”พๅ‡บๆฅ่ฏ•่ฏ•ๆฐดใ€‚ ไฝœไธบไธ€ไธช็บฏๅŽ็ซฏๅ‡บ่บซใ€ๅ‰็ซฏๅชไผšๆŠ„ไปฃ็ ็š„ๅŠๅŠๅญ๏ผŒ่ฟ™ๆฌกๅ…จ้  cursor ๅ†™็ป„ไปถใ€claude ๆ‹้€ป่พ‘๏ผŒไธคๅคฉไธ‹็ญ็š„ๆ—ถ้—ดๆžๅฎŒ โ€”โ€” ไธๅพ—ไธ่ฏด็Žฐๅœจ AI ่พ…ๅŠฉๅผ€ๅ‘ๆ˜ฏ็œŸ็š„้ฆ™๏ผŒไปŽ้กต้ขๅธƒๅฑ€ๅˆฐไบคไบ’้€ป่พ‘๏ผŒๅŸบๆœฌๆ˜ฏ "่ฏด้œ€ๆฑ‚ๅฐฑ็ป™ไปฃ็ "๏ผŒ็œไบ†ๆˆ‘ๅ•ƒๆ–‡ๆกฃ่ฐƒๆ ทๅผ็š„ๆ—ถ้—ดใ€‚

ๅฅ‡ๆ€ช็š„ๆƒ…ๅ†ต๏ผšๆˆ‘็š„ Chrome ่ขซๆ›ดๆ–ฐๆˆ Dev ็‰ˆๆœฌไบ†

toorich: ๅฆ‚้ข˜๏ผŒWindows ๅนณๅฐ๏ผŒไปŽๆœชๆ‰‹ๅŠจไธ‹่ฝฝ่ฟ‡ Dev ็‰ˆๆœฌ็š„ๅฎ‰่ฃ…ๅŒ…๏ผŒไปŠๅคฉๆ‰“ๅผ€ Chrome ็ช็„ถๅ‘็Žฐ็‰ˆๆœฌๅ˜ๆˆไบ† 140 dev ๏ผŒๅฅ‡ๆ€ช็š„ๆ˜ฏๅฎ‰่ฃ…็›ฎๅฝ•ไป็„ถๆ˜ฏๆญฃๅธธ็š„่ทฏๅพ„๏ผŒ็”จๆˆทๆ•ฐๆฎไนŸๆ˜ฏไน‹ๅ‰็จณๅฎš็‰ˆ็ปงๆ‰ฟ่ฟ‡ๆฅ็š„๏ผŒ่ฟ™็งๆƒ…ๅ†ตๅทฒ็ปๆ˜ฏ่ฟ‘ๅ‡ ไธชๆœˆๅ†…็ฌฌไบŒๆฌกๅ‡บ็Žฐไบ†๏ผŒๆˆ‘ๆƒณ็Ÿฅ้“่ฟ™ๆ˜ฏไป€ไนˆๆƒ…ๅ†ต๏ผŸ

ๅพฎไฟก bug๏ผŒๅฏไปฅ็ป™ๅผ ๅฐ้พ™ๆ‰“็”ต่ฏไบ†

baoshu:

ๅฎ‰ๅ“ๅคๅˆถ่ฟ™ไธชไปฃ็ ๏ผŒๅ‘็ป™ๅฅฝๅ‹ใ€‚ๅณๅฏๆ‹จๆ‰“ๅพฎไฟก็”ต่ฏใ€‚๏ผˆ ios ๅ’Œ็”ต่„‘็ซฏๆ— ๆ•ˆ๏ผ‰

<a href="weixin://voip/callagain/?username=allenzhang">็‚นๅ‡ป่‡ด็”ตๆˆ‘</a>

ๅฏไปฅๆŠŠ username=ๅŽ้ข็š„ๅพฎไฟกๅท๏ผŒๆ”นๆˆไปปๆ„ไธ€ไธชๅพฎไฟกๅทใ€‚ๅณไฝฟๅฏนๆ–นๅ’Œไฝ ไธๆ˜ฏๅฅฝๅ‹ใ€‚

ๅฝ“็„ถๅฏนๆ–นๅ’Œไฝ ไธๆ˜ฏๅฅฝๅ‹็š„ๆƒ…ๅ†ต๏ผŒ็”ต่ฏๆ˜ฏๆ‰“ไธ้€š็š„ใ€‚

ๆ‹จๆ‰“ๆ•ˆๆžœ๏ผš https://imgur.com/a/yJcpfMY

BMAD-METHOD๏ผš่ฎฉไธ€ไธชไบบ้กถไธ€ไธชๆ•ๆทๅ›ข้˜Ÿ็š„ AI ้ฉฑๅŠจๅผ€ๅ‘ๆก†ๆžถ

terryso:

ไฝ ่ฟ˜ๅœจไธบ็ป„ๅปบๆ•ๆทๅ›ข้˜Ÿ่€Œ่‹ฆๆผๅ—๏ผŸ

ๅœจ่ฝฏไปถๅผ€ๅ‘็š„ไธ–็•Œ้‡Œ๏ผŒๆ•ๆทๅผ€ๅ‘ๆ–นๆณ•ๅทฒ็ปๆˆไธบไธปๆตใ€‚ไฝ†ๆ˜ฏ๏ผŒ็ป„ๅปบไธ€ไธชๅฎŒๆ•ด็š„ๆ•ๆทๅ›ข้˜Ÿ้œ€่ฆไบงๅ“็ป็†ใ€ๆžถๆž„ๅธˆใ€ๅผ€ๅ‘ไบบๅ‘˜ใ€ๆต‹่ฏ•ไบบๅ‘˜ใ€UX ่ฎพ่ฎกๅธˆ็ญ‰ๅ„็ง่ง’่‰ฒ๏ผŒๅฏนไบŽไธชไบบๅผ€ๅ‘่€…ๆˆ–ๅฐๅ›ข้˜Ÿๆฅ่ฏด๏ผŒ่ฟ™ๅ‡ ไนŽๆ˜ฏไธๅฏ่ƒฝ็š„ไปปๅŠกใ€‚

็›ดๅˆฐ BMAD-METHOD ็š„ๅ‡บ็Žฐ๏ผŒ่ฟ™ไธ€ๅˆ‡้ƒฝๆ”นๅ˜ไบ†ใ€‚

BMAD-METHOD๏ผš้ฉๅ‘ฝๆ€ง็š„ AI ๆ•ๆทๅผ€ๅ‘ๆก†ๆžถ

BMAD-METHOD๏ผˆ Breakthrough Method of Agile AI-Driven Development ๏ผ‰ๆ˜ฏไธ€ไธช็ช็ ดๆ€ง็š„ AI ไปฃ็†็ผ–ๆŽ’ๆก†ๆžถ๏ผŒๅฎƒ็š„ๆ ธๅฟƒ็†ๅฟตๆ˜ฏ้€š่ฟ‡ไธ“้—จ็š„ AI ไปฃ็†ๆฅๆจกๆ‹ŸๅฎŒๆ•ด็š„ๆ•ๆทๅผ€ๅ‘ๅ›ข้˜Ÿ๏ผŒ่ฎฉไธ€ไธชไบบๅฐฑ่ƒฝๆ‹ฅๆœ‰ๆ•ดไธชๅ›ข้˜Ÿ็š„ๅŠ›้‡ใ€‚

๐ŸŽฏ ไธ€ไบบ Scrum ๅ›ข้˜Ÿ็š„ๆ ธๅฟƒไผ˜ๅŠฟ

ไธ“ไธš่ง’่‰ฒๅฎŒๆ•ด่ฆ†็›–

  • ไธšๅŠกๅˆ†ๆžๅธˆ๏ผˆ Analyst ๏ผ‰๏ผšๅธ‚ๅœบ่ฐƒ็ ”ใ€้œ€ๆฑ‚ๆ”ถ้›†
  • ไบงๅ“็ป็†๏ผˆ PM ๏ผ‰๏ผšPRD ๅˆ›ๅปบใ€ๅŠŸ่ƒฝไผ˜ๅ…ˆ็บงๆŽ’ๅบ
  • ๆžถๆž„ๅธˆ๏ผˆ Architect ๏ผ‰๏ผš็ณป็ปŸ่ฎพ่ฎกใ€ๆŠ€ๆœฏๆžถๆž„
  • ๅผ€ๅ‘ไบบๅ‘˜๏ผˆ Developer ๏ผ‰๏ผš้กบๅบไปปๅŠกๆ‰ง่กŒใ€ๆต‹่ฏ•
  • QA ไธ“ๅฎถ๏ผˆ QA ๏ผ‰๏ผšไปฃ็ ๅฎกๆŸฅใ€้‡ๆž„
  • UX ไธ“ๅฎถ๏ผˆ UX ๏ผ‰๏ผšUI/UX ่ฎพ่ฎก
  • ไบงๅ“่ดŸ่ดฃไบบ๏ผˆ PO ๏ผ‰๏ผš้œ€ๆฑ‚็ฎก็†
  • Scrum Master ๏ผˆ SM ๏ผ‰๏ผšๅ†ฒๅˆบ่ง„ๅˆ’ใ€ๆ•…ไบ‹ๅˆ›ๅปบ

็œŸๆญฃ็š„ๆ•ๆทๅทฅไฝœๆต ไธๆ˜ฏ็ฎ€ๅ•็š„ AI ๅŠฉๆ‰‹๏ผŒ่€Œๆ˜ฏไธฅๆ ผ้ตๅพชๆ•ๆทๆ–นๆณ•่ฎบ็š„ๅฎŒๆ•ดๆต็จ‹๏ผŒๆฏไธช AI ไปฃ็†้ƒฝๆœ‰ๆ˜Ž็กฎ็š„่Œ่ดฃๅ’Œไบคไป˜็‰ฉใ€‚

ๅœจ Claude Code ็Žฏๅขƒไธ‹็š„ๅฎŒๆ•ดไบคไป˜ๆต็จ‹

๐Ÿš€ ็Žฏๅขƒๅ‡†ๅค‡๏ผšๅฟซ้€Ÿๅฎ‰่ฃ…

ๅœจๅผ€ๅง‹ไฝฟ็”จ BMAD-METHOD ไน‹ๅ‰๏ผŒ้ฆ–ๅ…ˆ้œ€่ฆๅœจไฝ ็š„้กน็›ฎไธญๅฎ‰่ฃ…ๆก†ๆžถ๏ผš

npx bmad-method install

่ฟ™ไธชๅ‘ฝไปคไผšๅœจไฝ ็š„้กน็›ฎไธญๅฎ‰่ฃ… BMAD-METHOD ๆก†ๆžถ๏ผŒ่‡ชๅŠจ้…็ฝฎๆ‰€ๆœ‰ๅฟ…่ฆ็š„ AI ไปฃ็†ๅ’Œๆจกๆฟๆ–‡ไปถใ€‚ๅฎ‰่ฃ…ๅฎŒๆˆๅŽ๏ผŒไฝ ๅฐฑๅฏไปฅๅผ€ๅง‹ไฝฟ็”จๅ„็ง่ง’่‰ฒๅ‘ฝไปคไบ†ใ€‚

็ฌฌไธ€ๆญฅ๏ผš้œ€ๆฑ‚ๅˆ†ๆžไธŽๅคด่„‘้ฃŽๆšด

๐Ÿง  ไฝฟ็”จ /analyst ๅ‘ฝไปคๅฏๅŠจๅˆ†ๆžๅธˆ่ง’่‰ฒ

/analyst
  • ๅˆ†ๆžๅธˆไผšไธŽไฝ ่ฟ›่กŒๆทฑๅ…ฅ็š„ๅคด่„‘้ฃŽๆšดๅฏน่ฏ
  • ๆŽข่ฎจ้กน็›ฎ่ƒŒๆ™ฏใ€็›ฎๆ ‡็”จๆˆทใ€ๆ ธๅฟƒ้œ€ๆฑ‚
  • ๆ นๆฎๅ†…็ฝฎๆจกๆฟ่‡ชๅŠจ็”Ÿๆˆไธ€ไปฝๅฎŒๆ•ด็š„้กน็›ฎ็ฎ€ๆŠฅ
  • ไธบๅŽ็ปญ็š„ไบงๅ“่ฎพ่ฎกๅฅ ๅฎšๅŸบ็ก€

็ฌฌไบŒๆญฅ๏ผšไบงๅ“่ง„ๅˆ’ไธŽ้œ€ๆฑ‚ๆ–‡ๆกฃ

๐Ÿ“‹ ไฝฟ็”จ /pm ๅ‘ฝไปคๅ‘ผๅ”คไบงๅ“็ป็†่ง’่‰ฒ

/pm
  • ไบงๅ“็ป็†ๅŸบไบŽ้กน็›ฎ็ฎ€ๆŠฅ่ฟ›่กŒๆทฑๅ…ฅๅˆ†ๆž
  • ่‡ชๅŠจ็”Ÿๆˆ่ฏฆ็ป†็š„ PRD ๏ผˆไบงๅ“้œ€ๆฑ‚ๆ–‡ๆกฃ๏ผ‰
  • ๅˆ›ๅปบ้กน็›ฎ็š„ Epic ๏ผˆๅฒ่ฏ—ๆ•…ไบ‹๏ผ‰
  • ็กฎๅฎšๅŠŸ่ƒฝไผ˜ๅ…ˆ็บงๅ’Œไบงๅ“่ทฏ็บฟๅ›พ

็ฌฌไธ‰ๆญฅ๏ผš็ณป็ปŸๆžถๆž„่ฎพ่ฎก

๐Ÿ—๏ธ ไฝฟ็”จ /architect ๅ‘ฝไปคๅ‘ผๅ”คๆžถๆž„ๅธˆ่ง’่‰ฒ

/architect
  • ๆžถๆž„ๅธˆๅŸบไบŽ PRD ๅ’Œ Epic ่ฟ›่กŒๆŠ€ๆœฏๅˆ†ๆž
  • ่ฎพ่ฎกๅฎŒๆ•ด็š„็ณป็ปŸๆžถๆž„ๆ–‡ๆกฃ
  • ็กฎๅฎšๆŠ€ๆœฏๆ ˆใ€ๆ•ฐๆฎๅบ“่ฎพ่ฎกใ€API ็ป“ๆž„
  • ไธบๅผ€ๅ‘ๅ›ข้˜Ÿๆไพ›ๆŠ€ๆœฏๅฎžๆ–ฝๆŒ‡ๅฏผ

็ฌฌๅ››ๆญฅ๏ผšๅˆ›ๅปบ็”จๆˆทๆ•…ไบ‹

๐Ÿ“ ไฝฟ็”จ /sm ๅ‘ฝไปคๅ‘ผๅ”ค Scrum Master ่ง’่‰ฒ

/sm
  • Scrum Master ๅŸบไบŽ PRD ใ€Epic ๅ’Œๆžถๆž„ๆ–‡ๆกฃ
  • ๅˆ›ๅปบไธ‹ไธ€ไธชๅพ…ๅผ€ๅ‘็š„็”จๆˆทๆ•…ไบ‹๏ผˆ User Story ๏ผ‰
  • ๅฎšไน‰้ชŒๆ”ถๆ ‡ๅ‡†ๅ’ŒๅฎŒๆˆๅฎšไน‰
  • ไผฐ็ฎ—ๆ•…ไบ‹็‚นๆ•ฐๅ’Œไผ˜ๅ…ˆ็บง

็ฌฌไบ”ๆญฅ๏ผšๆ•…ไบ‹ๅผ€ๅ‘ๅฎž็Žฐ

๐Ÿ’ป ไฝฟ็”จ /dev ๅ‘ฝไปคๅ‘ผๅ”คๅผ€ๅ‘่€…่ง’่‰ฒ

/dev
  • ๅผ€ๅ‘่€…ๆŽฅๆ”ถๅˆšๅˆšๅˆ›ๅปบ็š„็”จๆˆทๆ•…ไบ‹
  • ่ฟ›่กŒ็ผ–็ ๅฎž็Žฐใ€ๅ•ๅ…ƒๆต‹่ฏ•ใ€้›†ๆˆๆต‹่ฏ•
  • ็กฎไฟไปฃ็ ่ดจ้‡ๅ’ŒๅŠŸ่ƒฝๅฎŒๆ•ดๆ€ง
  • ๅฎŒๆˆๆ•…ไบ‹็š„ๆœ€็ปˆไบคไป˜

็ฌฌๅ…ญๆญฅ๏ผšๆŒ็ปญ่ฟญไปฃๅพช็Žฏ

๐Ÿ”„ ้‡ๅคๆญฅ้ชค 4-5 ๏ผŒ็›ดๅˆฐ้กน็›ฎๅฎŒๆˆ

/sm โ†’ ๅˆ›ๅปบไธ‹ไธ€ไธชๆ•…ไบ‹
  โ†“
/dev โ†’ ๅฎž็Žฐๆ•…ไบ‹
  โ†“
/sm โ†’ ๅˆ›ๅปบไธ‹ไธ€ไธชๆ•…ไบ‹
  โ†“
/dev โ†’ ๅฎž็Žฐๆ•…ไบ‹
  โ†“
... ๆŒ็ปญๅพช็Žฏ

๐ŸŽฏ ๆ ธๅฟƒไผ˜ๅŠฟ๏ผšไธ€้”ฎๅˆ‡ๆข่ง’่‰ฒ

้€š่ฟ‡็ฎ€ๅ•็š„ๆ–œๆ ๅ‘ฝไปค๏ผŒไฝ ๅฏไปฅๅœจ Claude Code ไธญๆ— ็ผๅˆ‡ๆขไธๅŒ็š„ไธ“ไธš่ง’่‰ฒ๏ผš

  • ้šๆ—ถ้šๅœฐ๏ผšๆ— ้œ€้‡ๆ–ฐ้…็ฝฎ๏ผŒไธ€ไธชๅ‘ฝไปคๅณๅฏๅˆ‡ๆข
  • ไธŠไธ‹ๆ–‡ไฟๆŒ๏ผšๆฏไธช่ง’่‰ฒ้ƒฝ่ƒฝๅฎŒๆ•ด็†่งฃ้กน็›ฎ่ƒŒๆ™ฏ
  • ไธ“ไธš่พ“ๅ‡บ๏ผšๆฏไธช่ง’่‰ฒ้ƒฝๆŒ‰็…งๆ ‡ๅ‡†ๆจกๆฟ่พ“ๅ‡บไธ“ไธšๆ–‡ๆกฃ
  • ๆต็จ‹ๅฎŒๆ•ด๏ผšไธฅๆ ผๆŒ‰็…งๆ•ๆทๅผ€ๅ‘ๆต็จ‹ๆŽจ่ฟ›้กน็›ฎ

็‹ฌ็‰น็š„ๆŠ€ๆœฏ็‰นๆ€ง

๐ŸŽจ ๆ™บ่ƒฝๆจกๆฟ็ณป็ปŸ

  • ไบคไบ’ๅผๆ–‡ๆกฃๆจกๆฟ๏ผšๆ–‡ๆกฃๅ†…ๅตŒๅค„็†ๆŒ‡ไปค
  • ๅŠจๆ€ไพ่ต–ๅŠ ่ฝฝ๏ผšไปฃ็†ๅชๅŠ ่ฝฝๅฟ…่ฆ่ต„ๆบ
  • ๅนณๅฐๆ— ๅ…ณๆ€ง๏ผš้€‚็”จไบŽไปปไฝ•้กน็›ฎ็ฑปๅž‹

๐Ÿ”ง ็ตๆดป็š„ๅผ€ๅ‘ๆจกๅผ

  • ๆธ่ฟ›ๅผๅผ€ๅ‘๏ผš็จณๆญฅๆŽจ่ฟ›๏ผŒ่ดจ้‡ไผ˜ๅ…ˆ
  • YOLO ๆจกๅผ๏ผšๅฟซ้€ŸๅŽŸๅž‹๏ผŒ้€‚ๅˆๆŽข็ดข
  • ๅŒๆจกๅผๅˆ‡ๆข๏ผšๆ นๆฎ้กน็›ฎ้œ€ๆฑ‚็ตๆดป้€‰ๆ‹ฉ

๐Ÿค– ไธ“ไธšๅŒ– AI ไปฃ็†

  • ่ง’่‰ฒไธ“็ฒพ๏ผšๆฏไธชไปฃ็†ไธ“ๆณจไบŽ็‰นๅฎš้ข†ๅŸŸ
  • ็œŸๅฎžๅไฝœ๏ผšๆจกๆ‹Ÿ็œŸๅฎžๅ›ข้˜Ÿ็š„ๅทฅไฝœๆ–นๅผ
  • ๆ™บ่ƒฝไบคๆŽฅ๏ผšไปฃ็†้—ด่‡ชๅŠจๅ่ฐƒๅทฅไฝœ

ๅฎž้™…ๅบ”็”จไปทๅ€ผ

๐ŸŽฏ ็œŸๅฎž้กน็›ฎๆกˆไพ‹๏ผšpolyv-live-cli

่ฎฉๆˆ‘ไปฌ็œ‹ไธ€ไธช็œŸๅฎž็š„ BMAD-METHOD ๅบ”็”จๆกˆไพ‹๏ผšpolyv-live-cli

่ฟ™ๆ˜ฏไธ€ไธชๅฎŒๅ…จไฝฟ็”จ BMAD-METHOD ๅผ€ๅ‘็š„ CLI ๅทฅๅ…ท้กน็›ฎ๏ผŒ็”จไบŽ็ฎก็† Polyv ็›ดๆ’ญไบ‘ๆœๅŠก๏ผš

้กน็›ฎ็‰น็‚น๏ผš

  • TypeScript ๅผ€ๅ‘๏ผšๆไพ›ๅฎŒๆ•ด็š„็ฑปๅž‹ๅฎ‰ๅ…จไฟ้šœ
  • ๅคšๅŠŸ่ƒฝ้›†ๆˆ๏ผšๆ”ฏๆŒ้ข‘้“็ฎก็†ใ€ๆตๆŽงๅˆถใ€็Šถๆ€็›‘ๆŽง็ญ‰
  • ไผไธš็บงๅบ”็”จ๏ผšๆœๅŠกไบŽ็›ดๆ’ญไบ‘ๆœๅŠก็ฎก็†ๅœบๆ™ฏ

BMAD-METHOD ๅบ”็”จๆˆๆžœ๏ผš

  • docs/ ็›ฎๅฝ•๏ผšๅŒ…ๅซๅ„ไธช่ง’่‰ฒๅไฝœ็”Ÿๆˆ็š„ๅฎŒๆ•ดๆ–‡ๆกฃ
    • ๅˆ†ๆžๅธˆๆไพ›็š„ๅธ‚ๅœบ่ฐƒ็ ”ๅ’Œ้œ€ๆฑ‚ๅˆ†ๆž
    • ไบงๅ“็ป็†ๅˆ›ๅปบ็š„ PRD ๅ’Œ Epic ๆ–‡ๆกฃ
    • ๆžถๆž„ๅธˆ่ฎพ่ฎก็š„ๆŠ€ๆœฏๆžถๆž„ๆ–นๆกˆ
    • ๅผ€ๅ‘่€…ๅฎž็Žฐ็š„่ฏฆ็ป†ๆŠ€ๆœฏๆ–‡ๆกฃ

ๅผ€ๅ‘ๆ•ˆๆžœ๏ผš

  • โœ… ๅฎŒๆ•ด็š„ๆ•ๆทๅผ€ๅ‘ๆต็จ‹ๆ–‡ๆกฃๅŒ–
  • โœ… ๅ„่ง’่‰ฒ่Œ่ดฃๆธ…ๆ™ฐ๏ผŒไบคไป˜็‰ฉ่ง„่Œƒ
  • โœ… ้ซ˜่ดจ้‡็š„ไปฃ็ ๅ’Œ 80%+ ๆต‹่ฏ•่ฆ†็›–็އ
  • โœ… ไปŽๆฆ‚ๅฟตๅˆฐไบคไป˜็š„ๅฎŒๆ•ด่ฟฝๆบฏ้“พ

่ฟ™ไธช้กน็›ฎๅฎŒ็พŽๅฑ•็คบไบ†ไธ€ไธชไบบๅฆ‚ไฝ•้€š่ฟ‡ BMAD-METHOD ๆ‹ฅๆœ‰ๅฎŒๆ•ดๅ›ข้˜Ÿ็š„ๅไฝœ่ƒฝๅŠ›๏ผŒไปŽ้œ€ๆฑ‚ๅˆ†ๆžๅˆฐๆœ€็ปˆไบคไป˜็š„ๅ…จๆต็จ‹็ฎก็†ใ€‚

๐Ÿ’ก ้€‚็”จๅœบๆ™ฏ

  • ไธชไบบๅผ€ๅ‘่€…๏ผšไธ€ไบบๅฎŒๆˆๅฎŒๆ•ด้กน็›ฎ
  • ๅฐๅž‹ๅ›ข้˜Ÿ๏ผš่กฅๅ……ๅ›ข้˜ŸๆŠ€่ƒฝ็Ÿญๆฟ
  • ๅฟซ้€ŸๅŽŸๅž‹๏ผš่ฟ…้€Ÿ้ชŒ่ฏไบงๅ“ๆƒณๆณ•
  • ๆŠ€่ƒฝๅญฆไน ๏ผš้€š่ฟ‡ AI ไปฃ็†ๅญฆไน ไธๅŒ่ง’่‰ฒ็š„ๅทฅไฝœๆ–นๅผ

๐Ÿš€ ๆ ธๅฟƒไผ˜ๅŠฟ

  1. ๆˆๆœฌๆ•ˆ็›Š๏ผšๆ— ้œ€็ป„ๅปบๅฎŒๆ•ดๅ›ข้˜Ÿ
  2. ่ดจ้‡ไฟ้šœ๏ผšไธฅๆ ผ็š„ไปฃ็ ๅฎกๆŸฅๅ’Œๆต‹่ฏ•
  3. ๆต็จ‹่ง„่Œƒ๏ผš้ตๅพชๆ ‡ๅ‡†ๆ•ๆทๅฎž่ทต
  4. ๅญฆไน ไปทๅ€ผ๏ผšๆทฑๅ…ฅ็†่งฃๆ•ๆทๅผ€ๅ‘ๅ…จ่ฒŒ

ๅผ€ๅง‹ไฝ ็š„ BMAD-METHOD ไน‹ๆ—…

๐Ÿ“š ๆ›ดๅคš่ต„ๆบ

  • ่ฎฟ้—ฎ BMAD-METHOD GitHub ไป“ๅบ“ ่Žทๅ–่ฏฆ็ป†ๆ–‡ๆกฃ
  • ๆŸฅ็œ‹็คบไพ‹้กน็›ฎๅ’Œๆœ€ไฝณๅฎž่ทต
  • ๅŠ ๅ…ฅ็คพๅŒบ่ฎจ่ฎบ๏ผŒๅˆ†ไบซไฝ ็š„ไฝฟ็”จๅฟƒๅพ—

ๅœจ่ฟ™ไธช AI ๆ—ถไปฃ๏ผŒไธๅ†ๆ˜ฏๆœบๅ™จๅ–ไปฃไบบ็ฑป๏ผŒ่€Œๆ˜ฏไบบ็ฑปไธŽ AI ๅไฝœ๏ผŒๅˆ›้€ ๆ›ดๅคง็š„ไปทๅ€ผใ€‚BMAD-METHOD ่ฎฉๆฏไธชๅผ€ๅ‘่€…้ƒฝ่ƒฝๆ‹ฅๆœ‰ไธ€ไธชๅฎŒๆ•ด็š„ไธ“ไธšๅ›ข้˜Ÿ๏ผŒ่ฎฉๅˆ›ๆ„ไธๅ†ๅ—้™ไบŽ่ต„ๆบ๏ผŒ่ฎฉๆƒณๆณ•็œŸๆญฃๅ˜ๆˆ็Žฐๅฎžใ€‚

๐ŸŽฏ ่ฎฐไฝ่ฟ™ๅฅ่ฏ๏ผš

"ไธ€ไธชไบบ็š„ๅŠ›้‡ ร— AI ็š„ๆ™บๆ…ง = ๆ— ้™็š„ๅฏ่ƒฝ"


ๆƒณไบ†่งฃๆ›ดๅคš BMAD-METHOD ็š„ๅฎžๆˆ˜ๆŠ€ๅทงๅ’Œๆœ€ไฝณๅฎž่ทต๏ผŸ่ฏทๅ…ณๆณจๆˆ‘ไปฌ็š„ๅŽ็ปญๆ–‡็ซ ๏ผŒๆˆ‘ไปฌๅฐ†ๆทฑๅ…ฅๅˆ†ไบซๆ›ดๅคšๅฎž็”จ็š„ๅผ€ๅ‘็ป้ชŒๅ’Œๆกˆไพ‹ๅˆ†ๆžใ€‚

ๆœๅŠกๅ™จ็ฎก็†ๅŠฉๆ‰‹ๆ‹ฅๆŠฑๅคงๆจกๅž‹๐Ÿค–

codelover612:

ๅฐ่ฏ•ๆŠŠๆœๅŠกๅ™จ็ฎก็†ๅŠฉๆ‰‹ MyServers ๆŽฅๅ…ฅไบ†ๅคงๆจกๅž‹๏ผŒ็›ฎๅ‰ๆŠŠๆ‰€ๆœ‰ๆ’ไปถ็š„่ƒฝๅŠ›้ƒฝๅผ€ๆ”พ็ป™ไบ†ๅคงๆจกๅž‹๏ผŒไฝ“้ชŒ่ฟ˜ไธ้”™๏ผŒdeepseek ๅ’Œ gemini ่กจ็Žฐ้ƒฝ่ฟ˜ๅฏไปฅ๏ผˆ่™ฝ็„ถๆœ‰ๆ—ถไนŸไผšๆœ‰ๅนป่ง‰๏ผ‰๏ผŒๅฐฑๆ˜ฏ token ๆถˆ่€—ๆœ‰็‚นๅฟซ๏ฝž

ๅฆ‚ไฝ•ไปŽ่ฐทๆญŒไธญ็งป้™คๆ•™่‚ฒ็ฝ‘็ซ™็š„้š็งไฟกๆฏ

hansam47:

ๆˆ‘ๆฏ•ไธšๅพˆๅคšๅนดไบ†๏ผŒ่ฐทๆญŒๆœ็ดข่‡ชๅทฑ็š„ๆ‰‹ๆœบ่ƒฝๆœๅˆฐๅคงๅญฆ็š„ xlsx ๆ–‡ไปถ๏ผŒไฝ†ๆ˜ฏ่ฟ™ไธชๆ–‡ไปถๆœฌ่บซๆ— ๆณ•่ฎฟ้—ฎ๏ผŒๆˆ‘ๆขไบ†ๅ‡ ๆฌก ip ้ƒฝๆ˜ฏๅฆ‚ๆญค๏ผŒๆˆ‘่ฏทๆฑ‚ไปŽๆ”ถๅฝ•ไธญๅˆ ้™ค่ฟ™ไธช็•Œ้ข๏ผŒๅพ—ๅˆฐๅฆ‚ไธ‹ๅ›žๅค๏ผš Request declined Your request to remove a search result associated with your personal info was declined. ๆˆ‘ๆฃ€ๆŸฅไบ† policy ๅฏ่ƒฝๆ˜ฏๅ› ไธบๆ•™่‚ฒ็ฝ‘็ซ™ ๆˆ‘่ฏทๆฑ‚ๅˆทๆ–ฐ้‚ฃไธช็•Œ้ข๏ผŒไปŠๅคฉๅทฒ็ปๆˆๅŠŸ๏ผŒไฝ†ๆœ็ดข็ป“ๆžœ้‡Œ่ฟ˜ๆ˜ฏๆœ‰ใ€‚ ่ฏท้—ฎ็Žฐๅœจๆˆ‘่ฏฅ่”็ณปๅญฆๆ ก็š„ไป€ไนˆ้ƒจ้—จ๏ผŒๆˆ–่€…ๆ€Žไนˆ่”็ณป่ฐทๆญŒๅˆ ้™คๅ‘ข๏ผŸ

ๆณจ๏ผš้š็งๆ˜ฏ่‡ชๅทฑๆ ‡ไปท็š„๏ผŒๆˆ‘ไธ่ฎคๅฏไธๅ€ผ้’ฑ

[ๆฑ‚ๅŠฉ] ๆŽจ่ไธ€ไธชๅฎŒๅ…จๆœฌๅœฐๆ— ๆœๅŠก็š„ๆž็ฎ€้ฃŽๆ ผๅฏผ่ˆช็ฝ‘้กต

Apol1oBelvedere: ้œ€ๆฑ‚๏ผš
1. ๅฎŒๅ…จๆ— ๆœๅŠก๏ผŒๆœฌๅœฐ็›ดๆŽฅๅŒๅ‡ปๆ‰“ๅผ€่ƒฝ็”จ๏ผ›
2. ๆœ‰็ฝ‘็ซ™ๅˆ†็ฑป๏ผŒ็ฝ‘็ซ™็ซ™็‚น็š„ๅขžๅˆ ๆ”นๅŠŸ่ƒฝ๏ผŒๅฏไปฅๆœ‰ css ๆˆ– js ๏ผ›
3. ๆž็ฎ€้ฃŽๆ ผ๏ผŒๆ ทๅผๅ›พๆ ‡ๅฐไธ€ไบ›๏ผ›

็Šถๆ€ไธๅœจ็บฟ๏ผŒ่ฟ™ๅ‡ ๅคฉๆƒณ็ฆป่Œๆƒณ็–ฏไบ†...

xiyy02: ๆƒณๅˆฐๅ…ฌๅธ็š„ไธ€ๅ †ๅŠไบ‹ๅฐฑ็Šฏๆถๅฟƒ๏ผˆ okr ใ€ๅนดๅบฆ็›ฎๆ ‡ใ€็ปฉๆ•ˆ่€ƒๆ ธใ€ๆ•…้šœ็ปฉๆ•ˆๅˆ†ใ€ๅทฅๆ—ถ/ไปฃ็ ่กŒๆ•ฐ็ปŸ่ฎกใ€ๆ—ฅๅธธ่ฟญไปฃใ€ๆŠ€ๆ”น...๏ผ‰๏ผŒไบงๅ“-็ ”ๅ‘ๆฏ”่พพๅˆฐๅคธๅผ ็š„ 1:10+ ๏ผŒ็ณป็ปŸๅš็š„้žๅธธ็ƒ‚๏ผŒไปฅ่‡ณไบŽ็Žฐๅœจ็œ‹ๅˆฐไปฃ็ ไนŸ่ทŸ็€็Šฏๆถๅฟƒ๏ผŒๅทฒ็ปๅฎŒๅ…จๅคฑๅŽปๅฏน็ผ–็จ‹ๆœฌๅฐฑไธๅคš็š„็ƒญ็ˆฑไบ†๏ผŒๆฏๅคฉ้ƒฝๅพˆ็…Ž็†ฌ๏ผŒไธ€ๅˆฐๅ‘จๆœซๆ›ดๅŠ ๆไธ่ตทไปปไฝ•็ฒพ็ฅž๏ผŒไธ€่บบๅฐฑๆ˜ฏไธ€ๆ•ดๅคฉ๏ผŒๅœจๆƒณ่ฆๆ˜ฏ่พž่Œไบ†๏ผŒๅฐฑไธ€็›ด่บบๅœจๅบŠไธŠๅˆทๆ‰‹ๆœบๅฅฝไบ†๏ผŒไธ็”จๅ†ๅฎš okr ๏ผŒไธ็”จๆฏๆฌกๆžๆดปๅŠจ็†ฌๅˆฐๅพˆๆ™šๆ‰ไธ‹็ญ๏ผŒไนŸไธ็”จ่ƒŒไธ€ๅคงๅ †ไปปๅŠกๅœจ่บซไธŠใ€‚

ๆˆ‘่ฟ™ๆ˜ฏๆ€Žไนˆไบ†๏ผŸๆ„Ÿ่ง‰็Šถๆ€ไธๅคชๅฏนๅŠฒใ€‚
ๅทฒ็ปๅทฅไฝœ่ฟ‘ 10 ๅนดไบ†๏ผŒไปŽๆฒกๅƒ็Žฐๅœจ่ฟ™ๆ ทๆถๅฟƒไธŠ็ญใ€ๆถๅฟƒ็ผ–็จ‹๏ผŒๆˆ‘่ฏฅๆ€ŽไนˆๅŠž๏ผŸๆ„Ÿ่ง‰่‡ชๅทฑ่ขซๅ›ฐไฝไบ†๏ผŒๆ‚ฃๅพ—ๆ‚ฃๅคฑ

ๅฆ‚ไฝ•ๆ‰พๅˆฐๆŸไธช่ฟžๆŽฅ็š„่ฟ›็จ‹ๅ•Š

Blabber9125:

ๆœ€่ฟ‘ๆœบๅœบไธŠไผ ๆต้‡ไธๆญฃๅธธ๏ผŒไธ€็œ‹ๅ‡บๅ›ฝๅทฅๅ…ท Nikki ๆ—ฅๅฟ—๏ผŒๆœ‰ไธ€ไธช็š„ ip ไธ€็›ดๅœจ็–ฏ็‹‚่ฟžๆŽฅ๏ผŒไธๅคช็กฎๅฎšๆ˜ฏไธๆ˜ฏ่ฟ™ไธชๅฏผ่‡ด็š„๏ผŒ็›ฎๅ‰ๅทฒ็ปๆŠŠไปฃ็†ๅ…ณไบ†๏ผŒๅฆ‚ไฝ•ๅฎšไฝๆ‰พๅ‡บ่ฟ™ไธช่ฟžๆŽฅๆ˜ฏไป€ไนˆ่ฟ›็จ‹ๅ•Š๏ผŒ้—ฎไบ† AI ็ป™็š„ๅ‘ฝไปคๆฒกๆœ‰ๆ‰พๅˆฐwatch -n 1 'ss -tulpn | grep -v "ESTABLISHED 0 0"'ๅ’Œwatch -n 1 'netstat -tulpn'๏ผŒๅพˆๅฅ‡ๆ€ช๏ผŒไนŸๅฐฑๆœ€่ฟ‘ๅ‡ ๅคฉๅ‡บ็Žฐ็š„ๆต้‡ๅผ‚ๅธธ๏ผŒๅฐฑๆ˜ฏไธŠไผ ๏ผŒๆŽ’ๆŸฅไธๆ˜ฏ PT ๅฏผ่‡ด็š„๏ผŒๆŠŠ transmission ๅ’Œ qb ๅ…ณไบ†่ฟ˜ๆ˜ฏไธ€็›ดๆœ‰่ฟ™ไธช่ฟžๆŽฅ๏ผŒ้ฉฌ่ต›ๅ…‹็š„ๆ˜ฏๆˆ‘ๅ†…็ฝ‘้ฃž็‰› IP

ๆ‚จ้€š่ฟ‡ DataGrip2025 ๅ…่ดนๅ…‘ๆข็š„ JetBrains All Products Pack ๅฏ็ปง็ปญไฝฟ็”จ

AkaGhost:

่ฟ™ๆ ผๅฑ€ไธ€ไธ‹ๅญๅฐฑๆ‰“ๅผ€ไบ†๏ผ่ฟ™ไธ‹ๆฏ•ไธš็”Ÿๆ•™่‚ฒ่ฎธๅฏ่ƒฝๆ— ็ผ่ก”ๆŽฅๅ•†ไธš่ฎธๅฏไบ†๏ผŒ็”š่‡ณ่ฟ˜ๅธฆ 2025.1 ็š„ๅ›ž้€€่ฎธๅฏ่ฏใ€‚

[ๅ†…ๆŽจ] ๆ‹ผๅคšๅคš้›†ๅ›ข 2026 ๅฑŠๆๅ‰ๆ‰นๆ กๅ›ญๆ‹›่˜ๅผ€ๅง‹ๅ•ฆ

haizihaizi: ๆœๅŠก็ซฏ๏ผš [ๆ‹ผๅคšๅคš้›†ๅ›ข-PDD ๆ กๅ›ญๆ‹›่˜] ๅ†…ๆŽจ้“พๆŽฅ๏ผš https://careers.pddglobalhr.com/campus/grad/detail?t=QvKZUeENh7 ๏ผŒๅ†…ๆŽจ็ ๏ผšQvKZUeENh7 ใ€‚ๆœๅŠก็ซฏ็ ”ๅ‘ๅทฅ็จ‹ๅธˆ ๆœŸๅพ…ไฝ ็š„ๅŠ ๅ…ฅ๏ผๆˆ‘ไปฌไธ€่ตท๏ผŒๆ— ๆ‹ผไธ้’ๆ˜ฅ๏ผ๏ผˆ้€š่ฟ‡ๆญค้“พๆŽฅๆŠ•้€’่ฎกๅ…ฅๅ†…ๆŽจ๏ผŒๅ†…ๆŽจ็ฎ€ๅކไผ˜ๅ…ˆ็ญ›้€‰~๏ผ‰

็ฎ—ๆณ•๏ผš [ๆ‹ผๅคšๅคš้›†ๅ›ข-PDD ๆ กๅ›ญๆ‹›่˜] ๅ†…ๆŽจ้“พๆŽฅ๏ผš https://careers.pddglobalhr.com/campus/grad/detail?t=senZPKxmIX ๏ผŒๅ†…ๆŽจ็ ๏ผšsenZPKxmIX ใ€‚็ฎ—ๆณ•ๅทฅ็จ‹ๅธˆ ๆœŸๅพ…ไฝ ็š„ๅŠ ๅ…ฅ๏ผๆˆ‘ไปฌไธ€่ตท๏ผŒๆ— ๆ‹ผไธ้’ๆ˜ฅ๏ผ๏ผˆ้€š่ฟ‡ๆญค้“พๆŽฅๆŠ•้€’่ฎกๅ…ฅๅ†…ๆŽจ๏ผŒๅ†…ๆŽจ็ฎ€ๅކไผ˜ๅ…ˆ็ญ›้€‰~๏ผ‰

Web๏ผš [ๆ‹ผๅคšๅคš้›†ๅ›ข-PDD ๆ กๅ›ญๆ‹›่˜] ๅ†…ๆŽจ้“พๆŽฅ๏ผš https://careers.pddglobalhr.com/campus/grad/detail?t=eVYqZ9uv2A ๏ผŒๅ†…ๆŽจ็ ๏ผšeVYqZ9uv2A ใ€‚Web ๅ‰็ซฏ็ ”ๅ‘ๅทฅ็จ‹ๅธˆ ๆœŸๅพ…ไฝ ็š„ๅŠ ๅ…ฅ๏ผๆˆ‘ไปฌไธ€่ตท๏ผŒๆ— ๆ‹ผไธ้’ๆ˜ฅ๏ผ๏ผˆ้€š่ฟ‡ๆญค้“พๆŽฅๆŠ•้€’่ฎกๅ…ฅๅ†…ๆŽจ๏ผŒๅ†…ๆŽจ็ฎ€ๅކไผ˜ๅ…ˆ็ญ›้€‰~๏ผ‰

ๅฎขๆˆท็ซฏ๏ผš [ๆ‹ผๅคšๅคš้›†ๅ›ข-PDD ๆ กๅ›ญๆ‹›่˜] ๅ†…ๆŽจ้“พๆŽฅ๏ผš https://careers.pddglobalhr.com/campus/grad/detail?t=RgvacDYiaP ๏ผŒๅ†…ๆŽจ็ ๏ผšRgvacDYiaP ใ€‚ๅฎขๆˆท็ซฏ็ ”ๅ‘ๅทฅ็จ‹ๅธˆ ๆœŸๅพ…ไฝ ็š„ๅŠ ๅ…ฅ๏ผๆˆ‘ไปฌไธ€่ตท๏ผŒๆ— ๆ‹ผไธ้’ๆ˜ฅ๏ผ๏ผˆ้€š่ฟ‡ๆญค้“พๆŽฅๆŠ•้€’่ฎกๅ…ฅๅ†…ๆŽจ๏ผŒๅ†…ๆŽจ็ฎ€ๅކไผ˜ๅ…ˆ็ญ›้€‰~๏ผ‰

ๅฎ‰ๅ…จ๏ผš [ๆ‹ผๅคšๅคš้›†ๅ›ข-PDD ๆ กๅ›ญๆ‹›่˜] ๅ†…ๆŽจ้“พๆŽฅ๏ผš https://careers.pddglobalhr.com/campus/grad/detail?t=k2F4fbHYa3 ๏ผŒๅ†…ๆŽจ็ ๏ผšk2F4fbHYa3 ใ€‚ๅฎ‰ๅ…จๅทฅ็จ‹ๅธˆ ๆœŸๅพ…ไฝ ็š„ๅŠ ๅ…ฅ๏ผๆˆ‘ไปฌไธ€่ตท๏ผŒๆ— ๆ‹ผไธ้’ๆ˜ฅ๏ผ๏ผˆ้€š่ฟ‡ๆญค้“พๆŽฅๆŠ•้€’่ฎกๅ…ฅๅ†…ๆŽจ๏ผŒๅ†…ๆŽจ็ฎ€ๅކไผ˜ๅ…ˆ็ญ›้€‰~๏ผ‰

ๆ•ฐๆฎๅˆ†ๆž๏ผš [ๆ‹ผๅคšๅคš้›†ๅ›ข-PDD ๆ กๅ›ญๆ‹›่˜] ๅ†…ๆŽจ้“พๆŽฅ๏ผš https://careers.pddglobalhr.com/campus/grad/detail?t=BSfr8tu3WN ๏ผŒๅ†…ๆŽจ็ ๏ผšBSfr8tu3WN ใ€‚ๆ•ฐๆฎๅˆ†ๆžๅธˆ ๆœŸๅพ…ไฝ ็š„ๅŠ ๅ…ฅ๏ผๆˆ‘ไปฌไธ€่ตท๏ผŒๆ— ๆ‹ผไธ้’ๆ˜ฅ๏ผ๏ผˆ้€š่ฟ‡ๆญค้“พๆŽฅๆŠ•้€’่ฎกๅ…ฅๅ†…ๆŽจ๏ผŒๅ†…ๆŽจ็ฎ€ๅކไผ˜ๅ…ˆ็ญ›้€‰~๏ผ‰

ๅŽ็ฑณ OV ๅฑ…็„ถๅชๆœ‰ V ๆ”ฏๆŒไบ† Exchange OAuth2ใ€‚ใ€‚ใ€‚

Damn: /t/1100964
ๆ‰‹้‡Œๆœ‰ O ๏ผŒๅทฒ็Ÿฅไธๆ”ฏๆŒใ€‚
ไปŠๆ™š้€›ไบ†้€›ๅ•†ๅœบ๏ผŒๅŽ็ฑณ V ้ƒฝ็œ‹ไบ†็œ‹๏ผŒๅชๆœ‰ V ๆ”ฏๆŒใ€‚

ไบŽๆ˜ฏๅธธ่งๅ“็‰Œ็ณป็ปŸ่‡ชๅธฆ Exchange OAuth2 ๆ”ฏๆŒ็š„็ซŸ็„ถๅฐฑๅชๆœ‰ V/โญ๏ธ/๐ŸŽใ€‚ใ€‚

ๅทฒๆœ‰ๆžœ SE3 ไฝœไธบ esim ๅค‡ๆœบ๏ผŒไธ‰ๆ˜Ÿ็”ตๆฑ ๅคชๅฐไธ่€ƒ่™‘ไบ†ใ€‚
้‚ฃ่กŒๅง๏ผŒๆŒๅธๆ”ฏๆŒ vivo ใ€‚ใ€‚

ๆทฑๅœณๆœˆๅญไธญๅฟƒ/ๆœˆๅซ‚ๆŽจ่

yyyfor:

่ฏท้—ฎ้ ่ฐฑ็š„ๆœˆๅญไธญๅฟƒๅ’Œๆœˆๅซ‚ๅบ”่ฏฅๅฆ‚ไฝ•ๆ‰พ๏ผŸๅธ‚้ขไธŠ็š„ๅนฟๅ‘Šๅคชๅคšไบ†่‰ฏ่Ž ไธ้ฝ๏ผŒๆœ‰ๆฒกๆœ‰็†Ÿๆ‚‰็š„ๆˆ–่€…็ปๅކ่ฟ‡็š„ๅฅฝ็š„ๅฏไปฅๆŽจ่็š„๏ผŸ

ๆฐช้‡‘็ฎ€ๅ•ๅฎž็Žฐไบ†็”ตๆŠฅ้ข‘้“ๅ’Œ้ป‘ๅ‰่‡ชๅŠจๅŒๆญฅ๏ผŒๅฏไปฅ่‡ชๅŠจ่ฝฌๅ‘ๅ›พ็‰‡

xmz8888: ้‰ดไบŽๆœฌไบบๆ™บๅŠ›่ถŠๆฅ่ถŠไฝŽๆ‰€ไปฅ้€‰ๆ‹ฉ็›ดๆŽฅไป˜่ดน่ฎข้˜…ไบ† IFTTT ๆœๅŠก๏ผŒ็ ”็ฉถไธ€ไธ‹่ฒŒไผผ็Žฐๅœจๅช่ƒฝๅฎž็Žฐ็”ตๆŠฅ้ข‘้“็š„ๅ›พ็‰‡่‡ชๅŠจ่ขซ่ฝฌๅ‘ๅˆฐ้ป‘ๅ‰ๅ‘ๅ›พไบ†ใ€‚
ไธ่ถณไน‹ๅค„ๆ˜ฏ็”ตๆŠฅๅœจๅ‘ๅŽŸๅ›พๆ—ถๅฑžไบŽๆ–‡ไปถๆกฃๆกˆ๏ผŒๆ‰€ไปฅไธ่ƒฝๅ‘ๅŽŸๅ›พๅช่ƒฝๅ‘ๅŽ‹็ผฉ็š„ๅ›พ็‰‡๏ผŒ่‡ชๅทฑๅ‘่กจๆˆ–่€…่ฝฌ่ฝฝไป–ไบบ็š„ๅ›พ็‰‡้ƒฝๅฏไปฅ่ขซ IFTTT ่ฝฌๅ‘๏ผŒIFTTT ไผš่‡ชๅŠจๅŽป็ป‘ๅฎš็š„้ป‘ๅ‰ๅทๅ‘ๅ›พ็‰‡๏ผŒๅŒๆ—ถๆœ‰ๆ–‡ๅญ—ๆ่ฟฐๆ—ถๆ–‡ๅญ—ไนŸไผš่ขซๅธฆ็€๏ผŒไผšๆ ‡ๆณจๆฅๆบ็š„้“พๆŽฅใ€‚็„ถๅŽๆœ‰ๅคง็บฆๅๅˆ†ไน‹ไธ€็š„ๅ›พ็‰‡ไผš่ฝฌๅ‘้”™่ฏฏ้ป‘ๅ‰ๅ‘ๅ‡บๆฅ็š„ๆ˜ฏไธๆ˜พ็คบ็š„ 404 ๅ›พ็‰‡๏ผŒไผฐ่ฎก่ทŸๅ›พ็‰‡ๆ ผๅผๆœ‰ๅ…ณ็ณปใ€‚

ไฝ ๆœ€ๆ„Ÿ่ฐข่ฟ‡ๅŽปไน ๅพ—ๅ“ชไบ›ๆœ‰โ€œๅคๅˆฉโ€็š„ๆŠ€ๆœฏๆˆ–่ต„ๆบ๏ผŒๆœชๆฅ่ฟ˜ๆ‰“็ฎ—ไน ๅพ—ๅ“ชไธ€ไบ›

pythonee: ๅฝ“็„ถ๏ผŒ็ผ–็จ‹ๆˆ‘่ง‰ๅพ—ๅฐฑๆ˜ฏไธ€ไธชๅคๅˆฉ็š„ๆŠ€ๆœฏใ€‚้™คๆญคไน‹ๅค–ๅคš่ฏญ่จ€ไนŸ็ฎ—๏ผŒๅŽ้ขๆˆ‘ๆ‰“็ฎ—ๆ˜ฏไธๆ˜ฏๅผบๅŒ–ไธ€ไธ‹ๆฒŸ้€šใ€ๅ†™ไฝœๅ’Œ็†่ดข

ๆœ€่ฟ‘ๅ‡ ๅคฉๅฎž้ชŒไบ†ไธ‹ๆ‰€่ฐ“็š„ vibe coding๏ผŒ็ป“่ฎบๅฆ‚ไธ‹

riceball:

ๅ…ˆ่ฏด็ป“่ฎบ๏ผŒLLM ๅฏนไบŽๅทฒ็Ÿฅ็š„ๆจกไปฟๆ˜ฏๅ…ถๆœ€ๆ“…้•ฟ๏ผŒ็ฑปไผผๆจกๆฟไปฃ็ ๏ผŒไฝ†ๆ˜ฏไผšๆœ‰ๆŠ–ๅŠจ๏ผŒๆœ‰ๆ—ถๆ”พๅˆฐๅŽ้ขๅฐฑๆ˜ฏๅฎšๆ—ถ็‚ธๅผน๏ผŒๅฏนไบŽๅทฒ็Ÿฅ็š„็Žฐๆœ‰็š„ๆŠ„่ขญๆจกไปฟ่ƒฝๅŠ›ๆฅ่ฏด๏ผŒclaude ๅฝ“็ฌฌไธ€๏ผŒๅ› ไธบๅฎƒๆ— ่ง†็‰ˆๆƒๆŠŠ github ็ˆฌไบ†ไธช้๏ผŒ่ฟž gist ้ƒฝๆฒกๆ”พ่ฟ‡๏ผŒๆˆ‘็”š่‡ณๆ€€็–‘ๅช่ฆ็”จๅฎƒ็š„้ƒฝ่ขซ Claude ๅฝ“ไฝœ็ด ๆใ€‚gemini ไผšๆœ‰่‡ชๅทฑ็š„ๆ€่€ƒ๏ผŒๅฆ‚ๆžœ่ฎฉๅฎƒๆ”นๅ†™๏ผŒๅฎƒไผš่‡ชๅทฑ่ฏปไบ†ไผš็”จ่‡ชๅทฑ็š„้€ป่พ‘ๆฅๅ†™๏ผŒไธไผšไธ€ๅ‘ณ็…งๆฌ๏ผŒไฝ†ๆ˜ฏๅคชๅคๆ‚ๅฎƒๅฐฑๆญ‡่œไบ†ใ€‚่‡ชๆˆ‘ๆ„Ÿๅ—ๅคชไพ่ต– vibe ๏ผŒๅˆฐๅŽ้ขไผšๆ‡’ๅพ—ๅฎกๆŸฅ๏ผŒ็š„็กฎไผšๅ˜็ฌจ๏ผŒ่€Œไธ”ไนŸๅฎนๆ˜“ไธŠ็ซ๏ผŒไฝ†ๆ˜ฏ็š„็กฎ็›ฎๅ‰็ฎ€ๅ•้€ป่พ‘็š„ไปฃ็ ๏ผŒๅ•ๅ…ƒๆต‹่ฏ•๏ผŒๆ–‡ๆกฃ้ƒฝๆฒก้—ฎ้ข˜๏ผŒๅฏไปฅๅฝ“ไธ€ไธช็Ÿฅ่ฏ†ไธฐๅฏŒ็š„ๅฎžไน ็”ŸๅŠฉๆ‰‹๏ผŒๆžถๆž„่ฟ˜ไธ่กŒ๏ผŒๅช่ƒฝๅ‚่€ƒ๏ผŒๅ…ณ้”ฎ็š„ๅœฐๆ–น่ฟ˜ๅพ—็บ ๅใ€‚

ๆˆ‘็”จ็š„ๆ˜ฏGEMINI-CLI,ๅ› ไธบๆˆ‘ๆƒณ่ฆ็œ‹ LLM ็š„่‡ชๅทฑๆ€ๆƒณ๏ผŒ่€Œไธๆ˜ฏ่ฎฉ Claude ๅŽป็…งๆฌ.

่ฏ•้ชŒๆ˜ฏๅŸบไบŽๆˆ‘ๅ…ญๅนดๅ‰ๅ†™็š„ QInputEx ไธ€ไธช CUI(Conversational UI)็š„ๆ ธๅฟƒ็ป„ไปถ,่ฟ™ไธชๆ˜ฏๅŸบไบŽ Quasar@v1/VUE@2 ็š„๏ผŒๅฐ่ฏ•่ฎฉ AI ๅ‡็บงไธบ Quasar2/VUE3 ใ€‚

ไธ่ฟ‡ๆ„Ÿ่ง‰่ฟ™ไธช gemini ๅพˆๆ€ฅ่บ๏ผŒๅ†่ฟ™ไธช่ฟ‡็จ‹๏ผŒ่€ๆ˜ฏๆ€ฅไธๅฏ่€็š„่ฆๆฑ‚ๅˆ ้™ค v1 ่€็‰ˆๆœฌ็š„ไปฃ็ ใ€‚

ไบคๆตไบ†ไธ‰ๆฌก๏ผŒๆฏๅคฉไธ€ๆฌก๏ผŒๅŸบๆœฌๅฎŒๆˆไบ†ๆ”นๅ†™๏ผŒไฝ†ๆ˜ฏๆœ€็ปˆๆˆ‘ๆ”พๅผƒไบ†๏ผŒๆ„Ÿ่ง‰ๆ˜ฏๅ› ไธบ vue3 ไธบไบ†ๅขžๅผบๆ€ง่ƒฝ๏ผŒ็‰บ็‰ฒไบ†็ตๆดปๆ€ง๏ผŒๅฏนไบŽ่ฟ™ๆ ท็š„ๅŠจๆ€็ป„ไปถๅ…ถๅฎžๆ”ฏๆ’‘ไธๅคŸ๏ผŒไธ่ฟ‡ LLM ๅนถๆฒกๆœ‰ๆ้†’ๆˆ‘ใ€‚่ฟ™ๆ˜ฏๆœ€ๅŽๅฎž็Žฐๆœ€ๅคๆ‚็š„ search ็ป„ไปถๆ‰ๅ‘็Žฐ็š„ใ€‚ ๆ— ่ฎบๆ€Žๆ ท๏ผŒLLM ้ƒฝๆžไธๅฎšใ€‚

็ฌฌไธ€ๆฌกไบคๆต

ๅœจ็ป่ฟ‡ไธ€็ณปๅˆ—็š„ๆ็คบ๏ผŒๅ’ŒไฟฎๆญฃๅŽ๏ผŒๆ”นๅ†™ OK ๏ผŒไฝ†ๆ˜ฏๅชๆŠŠๅŸบ็ก€็ป„ไปถๆ”นๅ†™ไบ†๏ผŒ่€Œ้™„ๅฑžๆ‰ฉๅฑ•็ป„ไปถไธ€ไธชไนŸๆฒกๆœ‰ๆ”นๅ†™๏ผŒไธ่ฟ‡็š„็กฎๆ˜ฏ่‡ชๅทฑๅŠจไบ†่„‘ๅญ็š„๏ผŒไธๆ˜ฏ็…งๆฌใ€‚

 โ–ˆโ–ˆโ–ˆ            โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
โ–‘โ–‘โ–‘โ–ˆโ–ˆโ–ˆ         โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–ˆโ–ˆโ–ˆ
  โ–‘โ–‘โ–‘โ–ˆโ–ˆโ–ˆ      โ–ˆโ–ˆโ–ˆ     โ–‘โ–‘โ–‘  โ–‘โ–ˆโ–ˆโ–ˆ  โ–ˆ โ–‘  โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ
    โ–‘โ–‘โ–‘โ–ˆโ–ˆโ–ˆ   โ–‘โ–ˆโ–ˆโ–ˆ          โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ    โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ
     โ–ˆโ–ˆโ–ˆโ–‘    โ–‘โ–ˆโ–ˆโ–ˆ    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–‘โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–ˆ    โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–‘  โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ
   โ–ˆโ–ˆโ–ˆโ–‘      โ–‘โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ โ–‘   โ–ˆ โ–‘โ–ˆโ–ˆโ–ˆ      โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ  โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–‘โ–ˆโ–ˆโ–ˆ
 โ–ˆโ–ˆโ–ˆโ–‘         โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ     โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ  โ–‘โ–‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ
โ–‘โ–‘โ–‘            โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ โ–‘โ–‘โ–‘โ–‘โ–‘     โ–‘โ–‘โ–‘โ–‘โ–‘ โ–‘โ–‘โ–‘โ–‘โ–‘ โ–‘โ–‘โ–‘โ–‘โ–‘    โ–‘โ–‘โ–‘โ–‘โ–‘ โ–‘โ–‘โ–‘โ–‘โ–‘


Tips for getting started:
1. Ask questions, edit files, or run commands.
2. Be specific for the best results.
3. /help for more information.


โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ่ฏทไป”็ป†้˜…่ฏป v1 ็›ฎๅฝ•,ๅฐ† v1 ็›ฎๅฝ•ไธ‹็š„ Quasar v1 ็ป„ไปถ้‡ๆž„ไธบ Quasar v2 ็š„็ป„ไปถ,ๆ”พๅˆฐ Quasar UI kit ๆœฌ้กน็›ฎไธญ,ๅนถๆ นๆฎ็ป„ไปถ็š„็‰น็‚นไฟฎๆ”นๅฅฝ app-extension  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๅฅฝ็š„๏ผŒๆˆ‘ๆ˜Ž็™ฝไบ†ใ€‚ๆ‚จ็š„่ฆๆฑ‚ๆ˜ฏๅฐ† v1/ ็›ฎๅฝ•ไธญ็š„ Quasar v1 ็ป„ไปถ้‡ๆž„ไธบ Quasar v2 ็‰ˆๆœฌ๏ผŒๅนถๅฐ†ๅ…ถ้›†ๆˆๅˆฐ ui/ ็›ฎๅฝ•ไธ‹็š„ UI kit ้กน็›ฎไธญ๏ผŒๅŒๆ—ถๆ›ดๆ–ฐ app-extension ใ€‚

  ่ฟ™ๆ˜ฏไธ€ไธชๆฏ”่พƒๅคๆ‚็š„ไปปๅŠก๏ผŒๆˆ‘ไผšๅˆ†ๆญฅ่ฟ›่กŒใ€‚ๆˆ‘็š„่ฎกๅˆ’ๅฆ‚ไธ‹๏ผš


   1. ๅˆ†ๆž v1 ็ป„ไปถ: ๆˆ‘ไผšไป”็ป†้˜…่ฏป v1/components/qinputex/ ็›ฎๅฝ•ไธ‹็š„ๆ–‡ไปถ๏ผŒ็‰นๅˆซๆ˜ฏ qinputex.tsx ๅ’Œ็›ธๅ…ณ็š„ ts ๆ–‡ไปถ๏ผŒไปฅๅฎŒๅ…จ็†่งฃ่ฏฅ็ป„ไปถ็š„ๅŠŸ่ƒฝใ€ๅฑžๆ€ง๏ผˆ props ๏ผ‰ใ€ไบ‹ไปถ๏ผˆ events ๏ผ‰ๅ’Œๅ†…้ƒจ้€ป่พ‘ใ€‚
   2. ๅˆ›ๅปบ v2 ็ป„ไปถ้ชจๆžถ: ๅœจ ui/src/components/ ็›ฎๅฝ•ไธ‹๏ผŒๆˆ‘ไผšๅˆ›ๅปบไธ€ไธชๆ–ฐ็š„ Vue 3 ๅ•ๆ–‡ไปถ็ป„ไปถ๏ผˆ SFC, .vue ๆ–‡ไปถ๏ผ‰๏ผŒไฝœไธบ้‡ๆž„็š„็›ฎๆ ‡ใ€‚
   3. ่ฟ็งป้€ป่พ‘ๅ’Œๆจกๆฟ:
       * ๅฐ†็ป„ไปถ็š„้€ป่พ‘ไปŽ Vue 2/TypeScript (ๅฏ่ƒฝๆ˜ฏ Class-based ๆˆ– Options API) ่ฟ็งปๅˆฐ Vue 3 ็š„ Composition API (<script setup>)ใ€‚
       * ๅฐ† tsx ่ฏญๆณ•็ผ–ๅ†™็š„ๆจกๆฟ่ฝฌๆขไธบ Vue 3 ็š„ <template> HTML ่ฏญๆณ•ใ€‚
       * ๅฐ† Stylus (.styl) ๆ ทๅผ่ฝฌๆขไธบ SASS (.sass) ๅนถๆ”พๅ…ฅๆ–ฐ็ป„ไปถ็š„ <style> ๅ—ไธญใ€‚
   4. ้›†ๆˆๅˆฐ UI Kit: ๆ›ดๆ–ฐ ui/src/vue-plugin.js ๅ’Œ็›ธๅ…ณ็š„ๅ…ฅๅฃๆ–‡ไปถ (index.esm.js ็ญ‰)๏ผŒไปฅๆญฃ็กฎๅฏผๅ‡บๅ’Œๆณจๅ†Œๆ–ฐ็š„ v2 ็ป„ไปถใ€‚
   5. ๆ›ดๆ–ฐ App Extension: ไฟฎๆ”น app-extension/src/boot/register.js ๆ–‡ไปถ๏ผŒไฝฟๅ…ถ่ƒฝๅคŸๅœจไฝฟ็”จๆญค App Extension ็š„้กน็›ฎไธญๆญฃ็กฎๅœฐๅ…จๅฑ€ๆณจๅ†Œๆ–ฐ็š„ v2 ็ป„ไปถใ€‚
   6. ๅปบ็ซ‹ๆต‹่ฏ•็Žฏๅขƒ: ๆˆ‘ไผšๅœจ ui/dev/src/pages/ ไธญๅˆ›ๅปบไธ€ไธชๆต‹่ฏ•้กต้ข๏ผŒๅผ•ๅ…ฅ้‡ๆž„ๅŽ็š„็ป„ไปถ๏ผŒไปฅ้ชŒ่ฏๅ…ถๅŠŸ่ƒฝๆ˜ฏๅฆๆญฃๅธธใ€‚
   7. ๆธ…็†: ๅœจ็กฎ่ฎคๆ–ฐ็š„ v2 ็ป„ไปถๅฎŒๅ…จๆญฃๅธธๅทฅไฝœๅŽ๏ผŒๆˆ‘ไผšๅปบ่ฎฎๅˆ ้™ค v1 ็›ฎๅฝ•ไปฅไฟๆŒ้กน็›ฎๆ•ดๆด๏ผŒๅนถๅœจๅพ—ๅˆฐๆ‚จ็š„ๅŒๆ„ๅŽๆ‰ง่กŒๅˆ ้™คๆ“ไฝœใ€‚

  ่ฟ™ไธช่ฎกๅˆ’ๅฌ่ตทๆฅๅฏไปฅๅ—๏ผŸ


  ๅฆ‚ๆžœๅฏไปฅ๏ผŒๆˆ‘ๅฐ†ไปŽ็ฌฌไธ€ๆญฅๅผ€ๅง‹๏ผšๅˆ†ๆž v1 ็ป„ไปถ็š„ๆบไปฃ็ ใ€‚ๆˆ‘ๅฐ†้ฆ–ๅ…ˆ้˜…่ฏปๆœ€ๆ ธๅฟƒ็š„็ป„ไปถๆ–‡ไปถใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile v1/components/qinputex/qinputex.tsx    โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๅฅฝ็š„๏ผŒๆˆ‘ๅทฒ็ปไป”็ป†้˜…่ฏปไบ† qinputex.tsx ็š„ไปฃ็ ใ€‚่ฟ™ๆ˜ฏไธ€ไธชไฝฟ็”จ Vue 2 ็ฑป็ป„ไปถๅ’Œ TSX ่ฏญๆณ•็ผ–ๅ†™็š„ๅคๆ‚็ป„ไปถใ€‚


  ไธบไบ†็ปง็ปญ้‡ๆž„๏ผŒๆˆ‘้œ€่ฆไบ†่งฃๅฎƒ็š„่พ…ๅŠฉๆจกๅ—ใ€‚ๆˆ‘ๅฐ†้ฆ–ๅ…ˆ้˜…่ฏป consts.ts ๅ’Œ hyphenate.ts ๆฅ็†่งฃๅ…ถๆ ธๅฟƒๆ•ฐๆฎ็ป“ๆž„ๅ’Œ่พ…ๅŠฉๅ‡ฝๆ•ฐใ€‚
 โœฆ ๅฅฝ็š„๏ผŒๆˆ‘ๅทฒ็ปๅˆ†ๆžไบ† v1 ็ป„ไปถ็š„ๆ ธๅฟƒไปฃ็  (qinputex.tsx, consts.ts, hyphenate.ts) ไปฅๅŠๅฝ“ๅ‰ UI kit ็š„ๅ…ฅๅฃ (vue-plugin.js) ๅ’Œๆต‹่ฏ•้กต้ข (Index.vue)ใ€‚

  ็Žฐๅœจ๏ผŒๆˆ‘ๅฐ†ๅผ€ๅง‹ๅฎž้™…็š„้‡ๆž„ๅทฅไฝœใ€‚


  ็ฌฌไธ€ๆญฅๆ˜ฏๅˆ›ๅปบๆ–ฐ็š„ v2 ็ป„ไปถๆ–‡ไปถใ€‚ๆˆ‘ๅฐ†ๅœจ ui/src/components/ ็›ฎๅฝ•ไธ‹ๅˆ›ๅปบไธ€ไธชๅไธบ QInputEx/ ็š„ๆ–ฐ็›ฎๅฝ•๏ผŒๅนถๅœจๅ…ถไธญๅˆ›ๅปบไธ€ไธช QInputEx.vue ๆ–‡ไปถใ€‚ๅŒๆ—ถ๏ผŒๆˆ‘ไนŸไผšๅฐ† v1 ็‰ˆๆœฌไธญ็š„ consts.ts ๅ’Œ hyphenate.ts
  ็š„้€ป่พ‘ๅˆๅนถๅนถ่ฝฌๆขไธบ JavaScript ๏ผŒๆ”พๅ…ฅ ui/src/components/QInputEx/utils.js ไธญ๏ผŒไปฅไพ›ๆ–ฐ็ป„ไปถไฝฟ็”จใ€‚


  ๆˆ‘ๅฐ†ๅ…ˆๅˆ›ๅปบ utils.js ๆ–‡ไปถใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  WriteFile Writing to ui/src/components/QInputEx/utils.js                                       โ”‚
 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ็Žฐๅœจ๏ผŒๆˆ‘ๅฐ†ๅˆ›ๅปบ QInputEx.vue ็ป„ไปถ็š„้ชจๆžถใ€‚่ฟ™ไธชๆ–‡ไปถๆœ€ๅˆๅฐ†ๅŒ…ๅซ <template>, <script setup>, ๅ’Œ <style> ้ƒจๅˆ†๏ผŒๅนถๅผ•ๅ…ฅๅˆšๅˆšๅˆ›ๅปบ็š„ utils.js ใ€‚ๆˆ‘ๅฐ†ๆŠŠ v1 ็š„ TSX ๆจกๆฟ็š„้€ป่พ‘็”จ Vue 3 ็š„ๆจกๆฟ่ฏญๆณ•้‡ๅ†™๏ผŒๅนถๅฐ†ๆ ทๅผไปŽ
  Stylus ่ฝฌๆขไธบ SASS ใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  WriteFile Writing to ui/components/QInputEx/QInputEx.vue                                                                 โ”‚
 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๆˆ‘ๅทฒๆˆๅŠŸๅˆ›ๅปบไบ† QInputEx.vue ๅ’Œ utils.js ใ€‚


  ็Žฐๅœจ๏ผŒๆˆ‘้œ€่ฆๅฐ†่ฟ™ไธชๆ–ฐ็ป„ไปถ้›†ๆˆๅˆฐ UI kit ไธญ๏ผŒไปฅไพฟๅฎƒๅฏไปฅๅœจๅผ€ๅ‘ๆœๅŠกๅ™จไธญ่ฟ›่กŒๆต‹่ฏ•ใ€‚ๆˆ‘ๅฐ†ไฟฎๆ”น ui/src/vue-plugin.js ๆฅๅฏผๅ…ฅๅ’Œๅฏผๅ‡บ QInputEx ็ป„ไปถใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  Edit ui/src/vue-plugin.js: import Component from './compo... => import QInputEx from './compon...   โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ็Žฐๅœจ vue-plugin.js ๅทฒ็ปๆ›ดๆ–ฐ๏ผŒQInputEx ็ป„ไปถๅบ”่ฏฅๅฏไปฅ่ขซ Quasar UI kit ๆญฃ็กฎ่ฏ†ๅˆซใ€‚

  ๆŽฅไธ‹ๆฅ๏ผŒๆˆ‘ๅฐ†ๅœจ ui/dev/src/pages/Index.vue ไธญๆทปๅŠ  QInputEx ็ป„ไปถ๏ผŒไปฅไพฟๆˆ‘ไปฌๅฏไปฅๅœจๅผ€ๅ‘็Žฏๅขƒไธญๆต‹่ฏ•ๅฎƒใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  Edit ui/dev/src/pages/Index.vue: <template>... => <template>...    โ”‚
 โ”‚                                                                       โ”‚
 โ”‚    Error: Failed to edit, could not find the string to replace.       โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ็œ‹่ตทๆฅ Index.vue ็š„ๅ†…ๅฎนไธŽๆˆ‘้ข„ๆœŸ็š„ไธๅฎŒๅ…จไธ€่‡ด๏ผŒๅฏผ่‡ดๆ›ฟๆขๅคฑ่ดฅใ€‚่ฟ™ๆ˜ฏๅ› ไธบ Index.vue ๅทฒ็ปๅ‘็”Ÿไบ†ๅ˜ๅŒ–ใ€‚


  ๆˆ‘ๅฐ†้‡ๆ–ฐ่ฏปๅ– ui/dev/src/pages/Index.vue ็š„ๅ†…ๅฎน๏ผŒ็„ถๅŽๆ นๆฎๆœ€ๆ–ฐ็š„ๅ†…ๅฎน่ฟ›่กŒๆ›ฟๆขใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile ui/dev/src/pages/Index.vue     โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๅฅฝ็š„๏ผŒๆˆ‘็œ‹ๅˆฐไบ† Index.vue ็š„ๆœ€ๆ–ฐๅ†…ๅฎนใ€‚ๅฎƒ็Žฐๅœจๆ˜ฏไธ€ไธชๆต‹่ฏ•้กต้ขๅˆ—่กจใ€‚ไธบไบ†ๆต‹่ฏ• QInputEx ๏ผŒๆˆ‘ๅฐ†ๅˆ›ๅปบไธ€ไธชๆ–ฐ็š„ๆต‹่ฏ•้กต้ข TestQInputEx.vue ๅœจ ui/dev/src/pages/ ็›ฎๅฝ•ไธ‹๏ผŒๅนถๅœจ ui/dev/src/router/pages.js
  ไธญๆทปๅŠ ่ทฏ็”ฑใ€‚


  ้ฆ–ๅ…ˆ๏ผŒๅˆ›ๅปบ TestQInputEx.vue ใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  WriteFile Writing to ui/dev/src/pages/TestQInputEx.vue          โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ็Žฐๅœจ๏ผŒๆˆ‘ๅฐ†ไฟฎๆ”น ui/dev/src/router/pages.js ๆฅๆทปๅŠ  TestQInputEx ้กต้ขใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile ui/dev/src/router/pages.js   โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ pages.js ๆ˜ฏ้€š่ฟ‡ require.context ๅŠจๆ€็”Ÿๆˆ่ทฏ็”ฑ็š„ใ€‚่ฟ™ๆ„ๅ‘ณ็€ๆˆ‘ไธ้œ€่ฆๆ‰‹ๅŠจไฟฎๆ”น pages.js ๏ผŒๅช้œ€่ฆ็กฎไฟ TestQInputEx.vue ๅญ˜ๅœจไบŽ ui/dev/src/pages/ ็›ฎๅฝ•ไธ‹ๅณๅฏใ€‚


  ็Žฐๅœจ๏ผŒๆˆ‘ๅฐ†ๅฐ่ฏ•่ฟ่กŒ pnpm dev ๆฅๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ๏ผŒๅนถๆฃ€ๆŸฅ QInputEx ็ป„ไปถๆ˜ฏๅฆๆญฃๅธธๅทฅไฝœใ€‚

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ -  Shell https_proxy=http://localhost:8088 pnpm dev [in ui] (Starting Quasar dev server for UI kit) โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ๆ— ๆณ•ๅทฅไฝœ: [Quasar] boot error: ReferenceError: Component is not defined  โ”‚
โ”‚        at Module.install (vue-plugin.js:7:1)                                โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile ui/src/vue-plugin.js  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๆ‚จ่ฏดๅพ—ๅฏน๏ผŒๆˆ‘็Šฏไบ†ไธ€ไธช้”™่ฏฏใ€‚ๅœจ vue-plugin.js ไธญ๏ผŒๆˆ‘ๆ›ฟๆขไบ† import Component ๏ผŒไฝ†ๆ˜ฏๅฟ˜่ฎฐไบ†ๅœจ install ๅ‡ฝๆ•ฐไธญๅฐ† app.component(Component.name, Component) ๆ”นไธบ app.component(QInputEx.name, QInputEx)ใ€‚


  ๆˆ‘ๅฐ†็ซ‹ๅณไฟฎๅค่ฟ™ไธช้—ฎ้ข˜ใ€‚
 
 โœฆ ็Žฐๅœจ vue-plugin.js ๅบ”่ฏฅๅทฒ็ปไฟฎๅคไบ†ใ€‚่ฏทๅ†ๆฌกๅฐ่ฏ•่ฟ่กŒ pnpm dev ใ€‚

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > Failed to resolve component: q-input-ex                                                                                      โ”‚
โ”‚    If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.   โ”‚
โ”‚      at <TestQInputEx onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< null > >                                                   โ”‚
โ”‚      at <RouterView>                                                                                                            โ”‚
โ”‚      at <QPageContainer>                                                                                                        โ”‚
โ”‚      at <QLayout view="lHh Lpr lFf" >                                                                                           โ”‚
โ”‚      at <MyLayout onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< Proxy(Object) {โ€ฆ} > >                                          โ”‚
โ”‚      at <RouterView>                                                                                                            โ”‚
โ”‚      at <App>                                                                                                                   โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๆˆ‘ๆ˜Ž็™ฝไบ†๏ผŒFailed to resolve component: q-input-ex ้”™่ฏฏ่กจๆ˜Ž q-input-ex ็ป„ไปถๆฒกๆœ‰่ขซๆญฃ็กฎๆณจๅ†Œใ€‚


  ๅœจ Vue 3 ไธญ๏ผŒไฝฟ็”จ <script setup> ็š„็ป„ไปถ๏ผŒๅ…ถ name ๅฑžๆ€ง้€šๅธธๆ˜ฏไปŽๆ–‡ไปถๅๆŽจๆ–ญๅ‡บๆฅ็š„๏ผˆไพ‹ๅฆ‚ QInputEx.vue ไผš่ขซๆŽจๆ–ญไธบ QInputEx ๏ผ‰ใ€‚็„ถ่€Œ๏ผŒๅœจๆจกๆฟไธญไฝฟ็”จๆ—ถ๏ผŒ้€šๅธธไผšไฝฟ็”จ kebab-case ๅฝขๅผ๏ผˆ q-input-ex ๏ผ‰ใ€‚


  ๆˆ‘้œ€่ฆ็กฎไฟ vue-plugin.js ๅœจๆณจๅ†Œ็ป„ไปถๆ—ถไฝฟ็”จไบ†ๆญฃ็กฎ็š„ๅ็งฐใ€‚้€šๅธธ๏ผŒQuasar ็ป„ไปถไผšๆœ‰ไธ€ไธช name ๅฑžๆ€ง๏ผŒๅนถไธ”ๅœจๆณจๅ†Œๆ—ถไฝฟ็”จ่ฟ™ไธชๅฑžๆ€งใ€‚


  ๆˆ‘ๅฐ†ๆฃ€ๆŸฅ ui/src/components/Component.js (ๆ—ง็š„็คบไพ‹็ป„ไปถ) ๆ˜ฏๅฆ‚ไฝ•ๅฎšไน‰ๅ…ถ name ๅฑžๆ€ง็š„๏ผŒไปฅไพฟๆˆ‘ๅฏไปฅๅœจ QInputEx.vue ไธญไนŸๆ˜Ž็กฎๅฎšไน‰ๅฎƒ๏ผŒๆˆ–่€…ๅœจ vue-plugin.js ไธญไฝฟ็”จ kebab-case ๆณจๅ†Œใ€‚


  ้ฆ–ๅ…ˆ๏ผŒๆˆ‘ๅฐ†่ฏปๅ– ui/src/components/Component.js ็š„ๅ†…ๅฎนใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile ui/src/components/Component.js  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๅฅฝ็š„๏ผŒๆˆ‘็œ‹ๅˆฐ Component.js ไธญๆ˜Ž็กฎๅฎšไน‰ไบ† name: 'QInputEx'ใ€‚่ฟ™ๆ„ๅ‘ณ็€ๅœจ vue-plugin.js ไธญไฝฟ็”จ QInputEx.name ๆ˜ฏๆญฃ็กฎ็š„ใ€‚


  ้—ฎ้ข˜ๅฏ่ƒฝๅ‡บๅœจ QInputEx.vue ไธญๆฒกๆœ‰ๆ˜Ž็กฎ่ฎพ็ฝฎ name ๅฑžๆ€ง๏ผŒๆˆ–่€… QInputEx.vue ๅฏผๅ‡บ็š„ไธๆ˜ฏไธ€ไธช็ป„ไปถ้€‰้กนๅฏน่ฑกใ€‚


  ๅœจไฝฟ็”จ <script setup> ็š„ๆƒ…ๅ†ตไธ‹๏ผŒ็ป„ไปถ็š„ name ๅฑžๆ€ง้€šๅธธไธ้œ€่ฆๆ˜พๅผๅฎšไน‰๏ผŒVue ไผšๆ นๆฎๆ–‡ไปถๅ่‡ชๅŠจๆŽจๆ–ญใ€‚ไฝ†ๆ˜ฏ๏ผŒไธบไบ†็กฎไฟๅ…ผๅฎนๆ€งๅ’Œๆ˜Ž็กฎๆ€ง๏ผŒๅฐคๅ…ถๆ˜ฏๅœจไฝœไธบๅบ“็ป„ไปถๅ‘ๅธƒๆ—ถ๏ผŒๆ˜พๅผๅฎšไน‰ name ๅฑžๆ€งๆ˜ฏไธ€ไธชๅฅฝไน ๆƒฏใ€‚


  ๆˆ‘ๅฐ†ไฟฎๆ”น QInputEx.vue ๏ผŒๅœจ <script setup> ไธญๆทปๅŠ  defineOptions({ name: 'QInputEx' }); ๆฅๆ˜Ž็กฎๆŒ‡ๅฎš็ป„ไปถๅ็งฐใ€‚่ฟ™ๅฐ†็กฎไฟ็ป„ไปถๅœจ่ขซ Quasar ๆ’ไปถๆณจๅ†Œๆ—ถ๏ผŒๅ…ถๅ็งฐๆ˜ฏ QInputEx ใ€‚


  ็„ถๅŽ๏ผŒๅœจๆจกๆฟไธญไฝฟ็”จ q-input-ex ๅบ”่ฏฅๆ˜ฏๆญฃ็กฎ็š„๏ผŒๅ› ไธบ Quasar ไผšๅฐ† PascalCase ็š„็ป„ไปถๅ่ฝฌๆขไธบ kebab-case ใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  Edit ui/components/QInputEx/QInputEx.vue: <script setup> => <script setup>...                                          โ”‚
 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๆˆ‘ๅทฒ็ปไฟฎๆ”นไบ† QInputEx.vue ๏ผŒๆ˜Ž็กฎๆŒ‡ๅฎšไบ†็ป„ไปถๅ็งฐใ€‚็Žฐๅœจ่ฏทๅ†ๆฌกๅฐ่ฏ•่ฟ่กŒ pnpm dev ใ€‚

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ๅŸบๆœฌๆ˜พ็คบๆญฃๅธธไบ†!  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๅคชๆฃ’ไบ†๏ผๅฌๅˆฐ QInputEx ๅŸบๆœฌๆ˜พ็คบๆญฃๅธธ๏ผŒๆˆ‘ๅพˆ้ซ˜ๅ…ดใ€‚


  ่ฟ™ๆ„ๅ‘ณ็€็ป„ไปถ็š„ๆณจๅ†Œๅ’ŒๅŸบๆœฌๆธฒๆŸ“ๅทฒ็ปๆˆๅŠŸใ€‚็Žฐๅœจ๏ผŒๆˆ‘ไปฌ้œ€่ฆ่ฟ›ไธ€ๆญฅ้ชŒ่ฏๅ…ถๅŠŸ่ƒฝๆ˜ฏๅฆๅฎŒๆ•ด๏ผŒๅนถๅค„็†ไน‹ๅ‰ v1 ็‰ˆๆœฌไธญ็š„ๅคๆ‚้€ป่พ‘๏ผŒไพ‹ๅฆ‚ attaches ๅ’Œ popup ใ€‚

  ๆŽฅไธ‹ๆฅ๏ผŒๆˆ‘ๅฐ†๏ผš


   1. ้ชŒ่ฏ `QInputEx` ็š„ๅŸบๆœฌๅŠŸ่ƒฝ๏ผš็กฎ่ฎค v-model ๅŒๅ‘็ป‘ๅฎšใ€label ็ญ‰ๅŸบๆœฌ props ๆ˜ฏๅฆๆญฃๅธธๅทฅไฝœใ€‚
   2. ้€ๆญฅๅฎž็Žฐ `attaches` ้€ป่พ‘๏ผšๅœจ TestQInputEx.vue ไธญๆทปๅŠ ไธ€ไบ›ๅธฆๆœ‰ attaches ็š„ QInputEx ๅฎžไพ‹๏ผŒๅนถ็กฎไฟๅฎƒไปฌๆญฃ็กฎๆธฒๆŸ“ๅ’Œไบคไบ’ใ€‚
   3. ๅฎž็Žฐ `popup` ้€ป่พ‘๏ผšๆทปๅŠ ๅธฆๆœ‰ popup ็š„ QInputEx ๅฎžไพ‹๏ผŒๅนถ้ชŒ่ฏๅผนๅ‡บ็ป„ไปถ็š„ๅŠŸ่ƒฝใ€‚


  ไธบไบ†่ฟ›่กŒ่ฟ™ไบ›ๆต‹่ฏ•๏ผŒๆˆ‘้œ€่ฆไฟฎๆ”น ui/dev/src/pages/TestQInputEx.vue ๏ผŒๆทปๅŠ ๆ›ดๅคš็š„ QInputEx ๅฎžไพ‹ๅ’Œไธ€ไบ›ๆต‹่ฏ•ๆ•ฐๆฎใ€‚


  ้ฆ–ๅ…ˆ๏ผŒๆˆ‘ๅฐ†ไฟฎๆ”น TestQInputEx.vue ๏ผŒๆทปๅŠ ไธ€ไธช็ฎ€ๅ•็š„ QInputEx ๅฎžไพ‹๏ผŒๅนถๅฐ่ฏ•ไฝฟ็”จ type ๅฑžๆ€งๆฅๆต‹่ฏ•ไธๅŒ็š„่พ“ๅ…ฅ็ฑปๅž‹ใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile ui/dev/src/pages/TestQInputEx.vue  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๅฅฝ็š„๏ผŒๆˆ‘ๅฐ†ไฟฎๆ”น TestQInputEx.vue ๏ผŒๆทปๅŠ ๆ›ดๅคš็š„ QInputEx ๅฎžไพ‹๏ผŒๅนถๅฐ่ฏ•ไฝฟ็”จ type ๅฑžๆ€งๆฅๆต‹่ฏ•ไธๅŒ็š„่พ“ๅ…ฅ็ฑปๅž‹๏ผŒไปฅๅŠ attaches ็š„ๅŸบๆœฌๅŠŸ่ƒฝใ€‚


  ็”ฑไบŽ QInputEx ็š„ attaches ไพ่ต–ไบŽ consts.ts ไธญๅฎšไน‰็š„ InputAttach ็ป“ๆž„๏ผŒๆˆ‘้œ€่ฆ็กฎไฟ่ฟ™ไบ›็ป“ๆž„ๅœจ utils.js ไธญ่ขซๆญฃ็กฎๅœฐๅค„็†ใ€‚


  ๆˆ‘ๅฐ†ๆทปๅŠ ไธ€ไธช็ฎ€ๅ•็š„ QInputEx ๅฎžไพ‹๏ผŒๅนถๅฐ่ฏ•ไฝฟ็”จ type ๅฑžๆ€งๆฅๆต‹่ฏ•ไธๅŒ็š„่พ“ๅ…ฅ็ฑปๅž‹ใ€‚ๅŒๆ—ถ๏ผŒๆˆ‘ไนŸไผšๆทปๅŠ ไธ€ไธชๅธฆๆœ‰ prepend ๅ’Œ append ๆ’ๆงฝ็š„ QInputEx ๅฎžไพ‹๏ผŒไปฅ้ชŒ่ฏ attaches ็š„ๅŸบๆœฌๅŠŸ่ƒฝใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  WriteFile Writing to ui/dev/src/pages/TestQInputEx.vue                       โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๆˆ‘ๅทฒ็ปๆ›ดๆ–ฐไบ† TestQInputEx.vue ๏ผŒๆทปๅŠ ไบ†ๅคšไธช QInputEx ๅฎžไพ‹๏ผŒๅŒ…ๆ‹ฌไธๅŒ type ็š„่พ“ๅ…ฅๆก†ไปฅๅŠๅธฆๆœ‰ prepend, append, before, after ๆ’ๆงฝ็š„่พ“ๅ…ฅๆก†ใ€‚


  ็Žฐๅœจ๏ผŒ่ฏทๅ†ๆฌก่ฟ่กŒ pnpm dev ๏ผŒๅนถๆฃ€ๆŸฅ่ฟ™ไบ›ๆ–ฐ็š„ QInputEx ๅฎžไพ‹ๆ˜ฏๅฆๆญฃๅธธๆ˜พ็คบๅ’Œๅทฅไฝœใ€‚

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ๆ•ฐๅญ—ๅ’Œ textarea ๆ˜พ็คบๆญฃๅธธ, Input with Prepend and Append ๅ›พๆ ‡ๅœจๅŒไธ€่กŒๅนถไธ”็‚น close ไบ‹ไปถ่งฆๅ‘ไนŸ OK, โ”‚
โ”‚  > ๆœ€ๅŽ Input with Before and After ๆ˜พ็คบไบ†ไธ‰่กŒ,็ฌฌไธ€่กŒๆ˜ฏๅคดๅƒ icon,็ฌฌไบŒ่กŒๆ˜ฏ่พ“ๅ…ฅๆก†,็ฌฌไธ‰่กŒๆ˜ฏ send    โ”‚
โ”‚    icon,่ฟ™ๆ˜ฏๆญฃๅธธ็š„ไนˆ?                                                                         โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๆ‚จ่ง‚ๅฏŸๅพ—ๅพˆไป”็ป†๏ผŒInput with Before and After ๆ˜พ็คบไธบไธ‰่กŒ็กฎๅฎžไธๆญฃๅธธใ€‚


  ๆ นๆฎ Quasar ็š„่ฎพ่ฎกๅ’ŒๅŽŸๅง‹ qinputex.tsx ็š„ๅฎž็Žฐ๏ผŒbefore ๅ’Œ after ๆ’ๆงฝ็š„ๅ†…ๅฎนๅบ”่ฏฅไธŽ่พ“ๅ…ฅๆก†ๅœจๅŒไธ€่กŒๆ˜พ็คบ๏ผŒๅฐฑๅƒ prepend ๅ’Œ append ไธ€ๆ ท๏ผŒๅชๆ˜ฏๅฎƒไปฌไฝไบŽ่พ“ๅ…ฅๆก†็š„ๅค–้ƒจใ€‚


  ๆˆ‘ไน‹ๅ‰็š„้‡ๆž„ๅœจๅค„็† before ๅ’Œ after ๆ’ๆงฝๆ—ถๆœ‰่ฏฏ๏ผŒๅฐ†ๅฎƒไปฌๆธฒๆŸ“ๆˆไบ†็‹ฌ็ซ‹็š„ๅ—็บงๅ…ƒ็ด ๏ผŒๅฏผ่‡ดไบ†ๆข่กŒใ€‚ๅฎž้™…ไธŠ๏ผŒQInput ็ป„ไปถๆœฌ่บซๅฐฑๆไพ›ไบ† before ๅ’Œ after ๆ’ๆงฝ๏ผŒๆˆ‘ไปฌๅบ”่ฏฅๅฐ†ๅ†…ๅฎน็›ดๆŽฅไผ ้€’็ป™ QInput ๏ผŒ่€Œไธๆ˜ฏๅœจ
  QInputEx ๅ†…้ƒจๅ•็‹ฌๆธฒๆŸ“ใ€‚


  ๆˆ‘ๅฐ†็ซ‹ๅณไฟฎๅค ui/src/components/QInputEx/QInputEx.vue ไธญ็š„ๆจกๆฟๅ’Œ็›ธๅ…ณ้€ป่พ‘๏ผš


   1. ไฟฎๆ”นๆจกๆฟ๏ผšๅฐ† before ๅ’Œ after ๆ’ๆงฝ็š„ๅ†…ๅฎน็›ดๆŽฅไฝœไธบๅ‘ฝๅๆ’ๆงฝไผ ้€’็ป™ๅ†…้ƒจ็š„ QInput ๆˆ– QSelect ็ป„ไปถใ€‚
   2. ่ฐƒๆ•ด้€ป่พ‘๏ผš
       * hasExternalSlots ๏ผˆๆˆ‘ๅฐ†้‡ๅ‘ฝๅไธบ hasTopOrBottomSlots ๏ผ‰ๅฐ†ๅชๆฃ€ๆŸฅ top ๅ’Œ bottom ๆ’ๆงฝใ€‚
       * ๅˆ›ๅปบไธ€ไธชๆ–ฐ็š„่ฎก็ฎ—ๅฑžๆ€ง internalQInputSlots ๏ผŒๅฎƒๅฐ†่ดŸ่ดฃๆ”ถ้›† prepend, append, before, after ่ฟ™ไบ›ๅบ”่ฏฅไผ ้€’็ป™ QInput ็š„ๆ’ๆงฝๅ†…ๅฎนใ€‚

  ่ฟ™ๅฐ†็กฎไฟ before ๅ’Œ after ๆ’ๆงฝ่ƒฝๅคŸๆญฃ็กฎๅœฐไธŽ่พ“ๅ…ฅๆก†ๅฏน้ฝใ€‚


  ไปฅไธ‹ๆ˜ฏไฟฎๆ”นๅŽ็š„ QInputEx.vue ๆ–‡ไปถๅ†…ๅฎน๏ผš
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  WriteFile Writing to ui/components/QInputEx/QInputEx.vue     โ”‚
 โ”‚                                                                 โ”‚
 โ”‚    ... first 43 lines hidden ...                                โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๆˆ‘ๅทฒ็ปๆ›ดๆ–ฐไบ† QInputEx.vue ๏ผŒไธป่ฆไฟฎๆ”นไบ†ไปฅไธ‹ๅ‡ ็‚น๏ผš


   1. ๆจกๆฟ็ป“ๆž„่ฐƒๆ•ด๏ผš
       * hasExternalSlots ๆ›ดๅไธบ hasTopOrBottomSlots ๏ผŒ็Žฐๅœจๅช็”จไบŽๅˆคๆ–ญ top ๅ’Œ bottom ๆ’ๆงฝๆ˜ฏๅฆๅญ˜ๅœจใ€‚
       * before ๅ’Œ after ๆ’ๆงฝไธๅ†ๅœจ QInputEx ๅ†…้ƒจ็š„ div ไธญๆธฒๆŸ“๏ผŒ่€Œๆ˜ฏไฝœไธบๅ‘ฝๅๆ’ๆงฝ็›ดๆŽฅไผ ้€’็ป™ๅ†…้ƒจ็š„ QInput ๆˆ– QSelect ็ป„ไปถใ€‚
   2. `internalQInputSlots` ่ฎก็ฎ—ๅฑžๆ€ง๏ผšๆ–ฐๅขžๆญค่ฎก็ฎ—ๅฑžๆ€ง๏ผŒ็”จไบŽๆ”ถ้›† prepend, append, before, after ่ฟ™ไบ›ๅบ”่ฏฅไผ ้€’็ป™ QInput ็š„ๆ’ๆงฝๅ†…ๅฎนใ€‚
   3. `bindObj` ็š„่ฐƒๆ•ด๏ผš็”ฑไบŽ setup ๅ‡ฝๆ•ฐไธญๆฒกๆœ‰ this ไธŠไธ‹ๆ–‡๏ผŒๆˆ‘็งป้™คไบ† bindObj ไธญๅฏน this ็š„ไพ่ต–๏ผŒๅนถ็›ดๆŽฅ่ฐƒ็”จๅ‡ฝๆ•ฐใ€‚
   4. `getPopupVNode` ไธญ็š„ `v-close-popup` ๆ›ฟๆข๏ผš็”ฑไบŽ v-close-popup ๆ˜ฏๆŒ‡ไปค๏ผŒๅœจ h ๅ‡ฝๆ•ฐไธญ็›ดๆŽฅไฝฟ็”จ้œ€่ฆ็‰นๆฎŠๅค„็†๏ผŒๆˆ‘ๆš‚ๆ—ถๅฐ†ๅ…ถๆ›ฟๆขไธบ onClick ไบ‹ไปถ๏ผŒไปฅไพฟๅŽ็ปญๅค„็†ใ€‚


  ็Žฐๅœจ๏ผŒ่ฏทๅ†ๆฌก่ฟ่กŒ pnpm dev ๏ผŒๅนถๆฃ€ๆŸฅ Input with Before and After ๆ˜ฏๅฆๅทฒ็ปๆญฃๅธธๆ˜พ็คบๅœจๅŒไธ€่กŒใ€‚

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ๅ—ฏ,ๆ˜พ็คบๆญฃๅธธไบ†้ƒฝๅœจๅŒไธ€่กŒ  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๅคชๅฅฝไบ†๏ผ Input with Before and After ่ƒฝๅคŸๆญฃๅธธๆ˜พ็คบๅœจๅŒไธ€่กŒ๏ผŒ่ฟ™่ฏดๆ˜Žๆˆ‘ไปฌๅฏน QInputEx.vue ๆจกๆฟๅ’Œๆ’ๆงฝๅค„็†็š„ไฟฎๆ”นๆ˜ฏๆญฃ็กฎ็š„ใ€‚


  ็Žฐๅœจ๏ผŒๆˆ‘ไปฌๅทฒ็ป่งฃๅ†ณไบ† QInputEx ็š„ๅŸบๆœฌๆ˜พ็คบ้—ฎ้ข˜๏ผŒๅนถไธ” type ๅฑžๆ€งๅ’Œ prepend/append/before/after ๆ’ๆงฝไนŸๅพ—ๅˆฐไบ†้ชŒ่ฏใ€‚


  ๆŽฅไธ‹ๆฅ๏ผŒๆˆ‘ไปฌ้œ€่ฆๅค„็† QInputEx ๆœ€ๅคๆ‚็š„้ƒจๅˆ†๏ผš`popup` ้€ป่พ‘ใ€‚่ฟ™ๆถ‰ๅŠๅˆฐๅŠจๆ€็ป„ไปถ็š„ๆธฒๆŸ“ใ€ๆ•ฐๆฎ็š„ๅŒๅ‘็ป‘ๅฎšไปฅๅŠๅผนๅ‡บๆก†็š„ๅ…ณ้—ญใ€‚

  ๆˆ‘ๅฐ†ๅˆ†ไปฅไธ‹ๅ‡ ไธชๆญฅ้ชคๆฅๅฎŒๆˆ popup ้€ป่พ‘็š„้‡ๆž„ๅ’Œ้ชŒ่ฏ๏ผš


   1. ๅ›ž้กพ `qinputex.tsx` ไธญ็š„ `popup` ๅฎž็Žฐ๏ผšๅ†ๆฌกไป”็ป†้˜…่ฏป qinputex.tsx ไธญ __getPopup ๅ‡ฝๆ•ฐ็š„ๅฎž็Žฐ๏ผŒ็†่งฃๅฎƒๆ˜ฏๅฆ‚ไฝ•ๅŠจๆ€ๅŠ ่ฝฝ็ป„ไปถใ€ไผ ้€’ props ๅ’Œๅค„็†ไบ‹ไปถ็š„ใ€‚
   2. ๅœจ `QInputEx.vue` ไธญๅฎž็Žฐ `popup` ้€ป่พ‘๏ผš
       * ็กฎไฟ getPopupVNode ๅ‡ฝๆ•ฐ่ƒฝๅคŸๆญฃ็กฎๅœฐๆธฒๆŸ“ๅŠจๆ€็ป„ไปถใ€‚
       * ๅค„็† popup ็ป„ไปถไธŽ QInputEx ไน‹้—ด็š„ๆ•ฐๆฎๅŒๅ‘็ป‘ๅฎšใ€‚
       * ๅฎž็Žฐๅผนๅ‡บๆก†็š„ๅ…ณ้—ญ้€ป่พ‘๏ผŒๅŒ…ๆ‹ฌ v-close-popup ๆŒ‡ไปค็š„ๆ›ฟไปฃๆ–นๆกˆใ€‚
   3. ๅˆ›ๅปบๆต‹่ฏ• `popup` ็ป„ไปถ๏ผšไธบไบ†ๆต‹่ฏ• popup ๅŠŸ่ƒฝ๏ผŒๆˆ‘้œ€่ฆๅœจ ui/dev/src/components/ ็›ฎๅฝ•ไธ‹ๅˆ›ๅปบไธ€ไธช็ฎ€ๅ•็š„ๆต‹่ฏ•็ป„ไปถ๏ผŒไพ‹ๅฆ‚ TestPopupComponent.vue ๏ผŒๅฎƒๅฐ†ไฝœไธบไธ€ไธช popup ็ป„ไปถ่ขซ QInputEx ๅŠจๆ€ๅŠ ่ฝฝใ€‚
   4. ๅœจ `TestQInputEx.vue` ไธญๆทปๅŠ  `popup` ๅฎžไพ‹๏ผšๅœจ TestQInputEx.vue ไธญๆทปๅŠ ไธ€ไธช QInputEx ๅฎžไพ‹๏ผŒๅนถ้…็ฝฎๅ…ถ type ๅฑžๆ€ง๏ผŒไฝฟๅ…ถ่ƒฝๅคŸ่งฆๅ‘ popup ใ€‚


  ้ฆ–ๅ…ˆ๏ผŒๆˆ‘ๅฐ†ๅˆ›ๅปบ TestPopupComponent.vue ใ€‚่ฟ™ไธช็ป„ไปถๅฐ†้žๅธธ็ฎ€ๅ•๏ผŒๅชๅŒ…ๅซไธ€ไธช q-input ๅ’Œไธ€ไธช q-btn ๏ผŒ็”จไบŽๆจกๆ‹Ÿ popup ็ป„ไปถ็š„ไบคไบ’ใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  WriteFile Writing to ...ui/components/TestPopupComponent.vue  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ็Žฐๅœจ TestPopupComponent.vue ๅทฒ็ปๅˆ›ๅปบใ€‚


  ๆŽฅไธ‹ๆฅ๏ผŒๆˆ‘ๅฐ†ไฟฎๆ”น ui/src/components/QInputEx/utils.js ๏ผŒๆทปๅŠ ไธ€ไธช register ็š„็คบไพ‹๏ผŒ็”จไบŽๆณจๅ†Œ TestPopupComponent ใ€‚่ฟ™ๅฐ†ๆจกๆ‹Ÿ qinputex.tsx ไธญ register ๅ‡ฝๆ•ฐ็š„ๅŠŸ่ƒฝใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile ui/src/components/QInputEx/utils.js  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๆˆ‘ๅฐ†ไฟฎๆ”น ui/src/components/QInputEx/utils.js ๏ผŒๅœจๅ…ถไธญๆทปๅŠ ไธ€ไธช register ่ฐƒ็”จ๏ผŒ็”จไบŽๆณจๅ†Œไธ€ไธชๅไธบ test-popup ็š„ InputType ๏ผŒๅนถๅฐ†ๅ…ถ popup ๅฑžๆ€งๆŒ‡ๅ‘ TestPopupComponent ใ€‚


  ๆณจๆ„๏ผšๅœจๅฎž้™…้กน็›ฎไธญ๏ผŒTestPopupComponent ๅบ”่ฏฅ่ขซๆญฃ็กฎๅœฐๅฏผๅ…ฅๅ’Œๆณจๅ†Œใ€‚ๅœจ่ฟ™้‡Œ๏ผŒๆˆ‘ๅฐ†ๅ‡่ฎพๅฎƒๅฏไปฅ้€š่ฟ‡ๅญ—็ฌฆไธฒๅ็งฐ่ขซๅŠจๆ€ๅŠ ่ฝฝ๏ผˆ่ฟ™้€šๅธธ้œ€่ฆ Vue ็š„ resolveComponent ๆˆ–ๅ…จๅฑ€ๆณจๅ†Œ๏ผ‰ใ€‚ไธบไบ†็ฎ€ๅŒ–๏ผŒๆˆ‘ๅฐ†็›ดๆŽฅๅœจ utils.js
  ไธญๅฏผๅ…ฅ TestPopupComponent ใ€‚


  ้‡่ฆๆ็คบ๏ผš็”ฑไบŽ utils.js ๆ˜ฏไธ€ไธช็‹ฌ็ซ‹็š„ๆจกๅ—๏ผŒๅฎƒไธ่ƒฝ็›ดๆŽฅ่ฎฟ้—ฎ Vue ็ป„ไปถใ€‚ๅ› ๆญค๏ผŒๆˆ‘ไธ่ƒฝ็›ดๆŽฅๅœจ utils.js ไธญ import TestPopupComponent ๅนถๅฐ†ๅ…ถไฝœไธบ popup.name ็š„ๅ€ผใ€‚

  ๆญฃ็กฎ็š„ๅšๆณ•ๆ˜ฏ๏ผš


   1. ๅœจ TestQInputEx.vue ไธญๅฏผๅ…ฅ TestPopupComponent ใ€‚
   2. ๅœจ TestQInputEx.vue ไธญๅฎšไน‰ไธ€ไธช InputType ๅฏน่ฑก๏ผŒๅ…ถไธญ popup.name ๆŒ‡ๅ‘ TestPopupComponent ใ€‚
   3. ๅฐ†่ฟ™ไธช InputType ๅฏน่ฑกไผ ้€’็ป™ QInputEx ็š„ type ๅฑžๆ€งใ€‚


  ่ฟ™ๆ ท๏ผŒQInputEx ๅฐฑๅฏไปฅ้€š่ฟ‡ h(compName, ...) ๆฅๆธฒๆŸ“ TestPopupComponent ใ€‚


  ๅ› ๆญค๏ผŒๆˆ‘ๅฐ†ไธไฟฎๆ”น `utils.js`ใ€‚็›ธๅ๏ผŒๆˆ‘ๅฐ†็›ดๆŽฅๅœจ TestQInputEx.vue ไธญๅฎšไน‰ไธ€ไธช test-popup ็ฑปๅž‹๏ผŒๅนถๅฐ†ๅ…ถ popup ๆŒ‡ๅ‘ TestPopupComponent ใ€‚


  ็Žฐๅœจ๏ผŒๆˆ‘ๅฐ†ไฟฎๆ”น TestQInputEx.vue ๏ผŒๆทปๅŠ ไธ€ไธช QInputEx ๅฎžไพ‹๏ผŒๅนถ้…็ฝฎๅ…ถ type ๅฑžๆ€ง๏ผŒไฝฟๅ…ถ่ƒฝๅคŸ่งฆๅ‘ popup ใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  WriteFile Writing to ui/dev/src/pages/TestQInputEx.vue  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๆˆ‘ๅทฒ็ปๆ›ดๆ–ฐไบ† TestQInputEx.vue ๏ผŒๆทปๅŠ ไบ†ไธ€ไธชๆ–ฐ็š„ QInputEx ๅฎžไพ‹๏ผŒๅ…ถ type ๅฑžๆ€ง่ขซ่ฎพ็ฝฎไธบไธ€ไธชๅŒ…ๅซ popup ้…็ฝฎ็š„ๅฏน่ฑกใ€‚popup.name ็Žฐๅœจ็›ดๆŽฅๅผ•็”จไบ†ๅฏผๅ…ฅ็š„ TestPopupComponent ใ€‚


  ็Žฐๅœจ๏ผŒ่ฏทๅ†ๆฌก่ฟ่กŒ pnpm dev ๏ผŒๅนถๆฃ€ๆŸฅๅธฆๆœ‰ popup ็š„ QInputEx ๆ˜ฏๅฆๆญฃๅธธๅทฅไฝœใ€‚็‚นๅ‡ป append ไฝ็ฝฎ็š„ edit ๅ›พๆ ‡๏ผŒๅบ”่ฏฅไผšๅผนๅ‡บไธ€ไธชๅŒ…ๅซ TestPopupComponent ็š„ QPopupProxy ใ€‚

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ็œ‹ไธŠๅŽป่ƒฝๅทฅไฝœ, ๅฝ“ๆˆ‘ๅœจ popup ไธญ่พ“ๅ…ฅ"test input in popup"ๅŽ, ๅœจ console ไธŠ่พ“ๅ‡บ: Popup input event: test input in popup test-popup undefined  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๅคชๅฅฝไบ†๏ผ Popup input event: test input in popup test-popup undefined ็š„่พ“ๅ‡บ่กจๆ˜Ž popup ็š„ input ไบ‹ไปถ่ขซๆญฃ็กฎ่งฆๅ‘ๅนถไผ ้€’ไบ†ๅ€ผใ€‚


  ็Žฐๅœจ๏ผŒ่ฏทๆ‚จ็กฎ่ฎคไธ€ไธ‹๏ผšๅฝ“ๆ‚จๅœจ popup ไธญ่พ“ๅ…ฅๅ†…ๅฎนๅนถๅ…ณ้—ญ popup ๅŽ๏ผŒQInputEx ็ป„ไปถๆœฌ่บซๆ˜พ็คบ็š„ๅ€ผๆ˜ฏๅฆไนŸๆ›ดๆ–ฐไธบ popup ไธญ่พ“ๅ…ฅ็š„ๅ†…ๅฎน๏ผŸ


  ๅฆ‚ๆžœ QInputEx ็š„ๆ˜พ็คบๅ€ผไนŸๆ›ดๆ–ฐไบ†๏ผŒ้‚ฃไนˆ popup ็š„ๆ ธๅฟƒๅŠŸ่ƒฝ๏ผˆๅŒ…ๆ‹ฌๆ•ฐๆฎ็š„ๅŒๅ‘็ป‘ๅฎš๏ผ‰ๅฐฑๅŸบๆœฌๅฎŒๆˆไบ†ใ€‚

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ๆ˜ฏ็š„,QInputEx ็š„ๆ˜พ็คบๅ€ผไนŸๆ›ดๆ–ฐไบ†  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๅคชๆฃ’ไบ†๏ผ่ฟ™ๆ„ๅ‘ณ็€ QInputEx ็š„ popup ๅŠŸ่ƒฝๅทฒ็ปๅŸบๆœฌ้‡ๆž„ๅฎŒๆˆ๏ผŒๅนถไธ”ๆ•ฐๆฎๅŒๅ‘็ป‘ๅฎšไนŸๆญฃๅธธๅทฅไฝœใ€‚


  ็Žฐๅœจ๏ผŒๆˆ‘ไปฌๅทฒ็ปๅฎŒๆˆไบ† QInputEx ็ป„ไปถไปŽ Quasar v1 ๅˆฐ v2 ็š„ๆ ธๅฟƒ้‡ๆž„ๅทฅไฝœ๏ผŒๅŒ…ๆ‹ฌ๏ผš


   * ๅŸบๆœฌ็ป„ไปถๆธฒๆŸ“
   * type ๅฑžๆ€งๆ”ฏๆŒ
   * prepend, append, before, after ๆ’ๆงฝๆ”ฏๆŒ
   * popup ๅŠŸ่ƒฝ๏ผˆๅŒ…ๆ‹ฌๅŠจๆ€็ป„ไปถๅŠ ่ฝฝๅ’Œๆ•ฐๆฎๅŒๅ‘็ป‘ๅฎš๏ผ‰

  ๆŽฅไธ‹ๆฅ๏ผŒๆˆ‘ๅฐ†่ฟ›่กŒไปฅไธ‹ๆ”ถๅฐพๅทฅไฝœ๏ผš


   1. ๆธ…็† `TestPopupComponent.vue`๏ผš่ฟ™ไธช็ป„ไปถๆ˜ฏ็”จไบŽๆต‹่ฏ•็š„๏ผŒๅœจๅฎŒๆˆ้‡ๆž„ๅŽๅฏไปฅๅˆ ้™คใ€‚
   2. ๆธ…็† `TestQInputEx.vue`๏ผšๅฐ† TestQInputEx.vue ๆขๅคๅˆฐๆ›ด็ฎ€ๆด็š„็Šถๆ€๏ผŒๆˆ–่€…ๆ นๆฎๆ‚จ็š„้œ€่ฆไฟ็•™ไธ€ไบ›ๆต‹่ฏ•็”จไพ‹ใ€‚
   3. ๆ›ดๆ–ฐ `app-extension`๏ผš็กฎไฟ app-extension ่ƒฝๅคŸๆญฃ็กฎๅœฐไฝฟ็”จๆ–ฐ็š„ QInputEx ็ป„ไปถใ€‚
   4. ๅˆ ้™ค `v1` ็›ฎๅฝ•๏ผšๅœจ็กฎ่ฎคๆ‰€ๆœ‰ๅŠŸ่ƒฝๆญฃๅธธๅŽ๏ผŒๅˆ ้™คๆ—ง็š„ v1 ็›ฎๅฝ•ใ€‚


  ้ฆ–ๅ…ˆ๏ผŒๆˆ‘ๅฐ†ๅˆ ้™ค ui/dev/src/components/TestPopupComponent.vue ใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ -  Shell rm ~/dev/qinputex-v2/ui/dev/src/components/TestPopupComponent.vue (Deleting temporary test component TestPopupComponent.vue) โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  > ไฟ็•™ๆต‹่ฏ•,็„ถๅŽ็ปง็ปญๆ›ดๆ–ฐ`app-extension`  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โœฆ ๅฅฝ็š„๏ผŒๆ‚จๅธŒๆœ›ไฟ็•™ๆต‹่ฏ•ๆ–‡ไปถ๏ผŒๅนถ็ปง็ปญๆ›ดๆ–ฐ app-extension ใ€‚


  ๆŽฅไธ‹ๆฅ๏ผŒๆˆ‘ๅฐ†ไฟฎๆ”น app-extension/src/boot/register.js ๆ–‡ไปถ๏ผŒไฝฟๅ…ถ่ƒฝๅคŸๅœจไฝฟ็”จๆญค App Extension ็š„้กน็›ฎไธญๆญฃ็กฎๅœฐๅ…จๅฑ€ๆณจๅ†Œๆ–ฐ็š„ v2 QInputEx ็ป„ไปถใ€‚


  ้ฆ–ๅ…ˆ๏ผŒๆˆ‘ๅฐ†่ฏปๅ– app-extension/src/boot/register.js ็š„ๅ†…ๅฎนใ€‚
 โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
 โ”‚ โœ”  ReadFile app-extension/src/boot/register.js  โ”‚
 โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โœฆ ๅฅฝ็š„๏ผŒapp-extension/src/boot/register.js ๅทฒ็ปๅœจไฝฟ็”จ quasar-ui-qinputex ่ฟ™ไธชๅŒ…ใ€‚่ฟ™ๆ„ๅ‘ณ็€๏ผŒๅช่ฆ quasar-ui-qinputex ่ฟ™ไธชๅŒ…ๅ‘ๅธƒๅนถๅŒ…ๅซไบ†ๆˆ‘ไปฌ้‡ๆž„ๅŽ็š„ QInputEx ็ป„ไปถ๏ผŒ้‚ฃไนˆ App Extension ๅฐฑไผš่‡ชๅŠจไฝฟ็”จๅฎƒใ€‚


  ๅ› ๆญค๏ผŒapp-extension ่ฟ™ไธ€ๆญฅไธ้œ€่ฆ็›ดๆŽฅไฟฎๆ”น register.js ใ€‚


  ็Žฐๅœจ๏ผŒๆˆ‘ไปฌๅทฒ็ปๅฎŒๆˆไบ† QInputEx ็ป„ไปถ็š„้‡ๆž„๏ผŒๅนถไธ” app-extension ไนŸๅทฒ็ปๅ‡†ๅค‡ๅฅฝไฝฟ็”จๅฎƒใ€‚

  ๆœ€ๅŽไธ€ๆญฅๆ˜ฏๅˆ ้™ค `v1` ็›ฎๅฝ•ใ€‚ๅœจๆ‚จ็กฎ่ฎคๆ‰€ๆœ‰ๅŠŸ่ƒฝ้ƒฝๆญฃๅธธ๏ผŒๅนถไธ”ไธๅ†้œ€่ฆ v1 ็›ฎๅฝ•ไธญ็š„ๆ—งไปฃ็ ๅŽ๏ผŒๆˆ‘ๅฐ†ๆ‰ง่กŒๆญคๆ“ไฝœใ€‚


  ๆ‚จๆ˜ฏๅฆ็กฎ่ฎคๅฏไปฅๅˆ ้™ค v1 ็›ฎๅฝ•ไบ†๏ผŸ

ๅฐฝ็ฎกๆˆ‘ๅทฒ็ปๅˆ ๆމไบ†ไธญ้—ด็š„ไปฃ็ ๏ผŒ่ฟ˜ๆ˜ฏๅคชๅคšไบ†๏ผŒๅทฒ็ป่ถ…่ฟ‡ไธป้ข˜ๅ†…ๅฎนใ€‚ๆ‰€ไปฅๅฐฑๅช่ƒฝๅˆฐ่ฟ™้‡Œไบ†ใ€‚

ไธ€ๅ›พ่ฏปๆ‡‚ๆฌ็“ฆๅทฅ่ฟ‘ 1 ๅนดๆ–ฐๆŽจๅ‡บ็š„็‰นไปทๆœบๆˆฟ

windywinter:

่ฟ™ไธ€ๅนดๆฌ็“ฆๅทฅๆŽจๅ‡บๆฏ”่พƒๅคšๆฌพ็‰นไปทๆœบๆˆฟ๏ผŒไธฅ้‡่ƒŒๅˆบๅކๅฒ่€็”จๆˆท๏ผŒ็‰นๅˆซๆ˜ฏ Plan ๅฅ—้ค็š„็”จๆˆท๏ผŒ็›ดๆŽฅ่ƒŒๅˆบๅˆฐไธขๅผƒ Plan ๅฅ—้คใ€‚

ๆ–ฐๆœบๆˆฟ็š„ๆ€งไปทๆฏ”้ƒฝ้žๅธธ็š„้ซ˜๏ผŒ็กฎๅฎžๆ˜ฏๅฅฝๆœบๅ™จ๏ผŒ็‰นๅˆซๆ˜ฏ DC99, DC1 ่ฟ™ไธคไธชๆœบๆˆฟๆ€งไปทๆฏ”็›ดๆŽฅๆ‹‰ๆปก

image

ๅฏนไบŽๅ„ไธชๆœบๆˆฟไป‹็ปๅฏไปฅๅ‚่€ƒ๏ผˆๅŒ…ๆ‹ฌๅ‚ๆ•ฐ๏ผŒ็บฟ่ทฏ่ฏดๆ˜Ž๏ผŒๆœบๆˆฟๆต‹่ฏ„็ญ‰๏ผ‰๏ผš https://bwh91.com

ๅฏนไบŽไปฅไธŠๆœบๆˆฟ็š„ๆต‹้€Ÿๅ’Œ็ฝ‘็ปœ้€้•œๅฏไปฅๅ‚่€ƒ๏ผš https://bwh91.com/speedtest.html

ๆฌ็“ฆๅทฅ่กฅ่ดง้ข‘้“๏ผš https://t.me/bwh82

่ฏ•ไบ†ไธ€ๅฎถๅ‘็Ÿญไฟก็š„ๅฐๆœๅŠกๅ•†๏ผŒๅฑ…็„ถๆ„ๅค–่ง‰ๅพ—ๆŒบไธ้”™

win7pro: ็œ‹ๅˆฐ่…พ่ฎฏไบ‘ใ€้˜ฟ้‡Œไบ‘ใ€ๅŽไธบไบ‘็š„็ŸญไฟกๆœๅŠก่ขซๆ•ดๅพ—้‚ฃไนˆๆƒจ๏ผŒไธ€็›ด้ƒฝ่ฎคไธบ่ฟ™ๆ˜ฏไธŠ้ขไธ‰ๅคง็”ตไฟก่ฟ่ฅๅ•†ๅœจ่ฐƒๆ•ด๏ผŒๆ‰€ไปฅไธ‹้ขๅ“ชๅฎถๆœๅŠกๅ•†้ƒฝไธ€ๆ ทๆƒจใ€‚ไธŠๅ‘จ้€š่ฟ‡้‚ฎไปถ็ป™็”จๆˆทๆŽจ้€ไบ†ไธ€ไปฝๅ…ณไบŽๆœ€่ฟ‘็Ÿญไฟกไธๅฏ้ ็š„่ฏดๆ˜Ž๏ผŒไธ€ๅฎถไน‹ๅ‰่”็ณป่ฟ‡ๆˆ‘ไฝ†ๆฒก่ขซๆˆ‘ๆ”พๅœจ็œผ้‡Œ็š„็ŸญไฟกๆœๅŠกๅ•†ๆ”ถๅˆฐ้‚ฎไปถ๏ผˆๅฑ…็„ถๆฝœไผๅœจๆˆ‘็š„็”จๆˆทไธญ๏ผ‰ๅŽ๏ผŒ่”็ณปๆˆ‘ๅ†ๆฌกๆŽจ้”€ๅฅนไปฌ็š„็ŸญไฟกๆœๅŠก๏ผŒ่ฏดๅฅนไปฌๆธ ้“ๅ—ๅฝฑๅ“ๅพˆๅฐ๏ผŒๆŠฅๅค‡่ถ…ๅฟซไป€ไนˆ็š„ใ€‚

ๆ”พไปฅๅ‰ๆˆ‘่‚ฏๅฎšไธๆญ็†๏ผŒไฝ†้˜ฟ้‡Œไบ‘็Ÿญไฟกๆƒจไธๅฟ็น็š„ๆˆๅŠŸ็އ๏ผŒๆˆ‘ๅ†ณๅฎš่ฏ•่ฏ•ใ€‚ไธ€ๅ‘จไธ‹ๆฅ๏ผˆ 7 ๆœˆ 8 ๆ—ฅ่ตท๏ผ‰๏ผŒๅฑ…็„ถๆ„Ÿ่ง‰่ฟ˜ไธ้”™๏ผŒ็ŸญไฟกๆˆๅŠŸ็އๅพˆ้ซ˜๏ผŒ่€Œไธ”็Šถๆ€ๆŽฅๆ”ถ้€ŸๅบฆไนŸๅฟซ๏ผŒๅŸบๆœฌ้ƒฝๅœจ 5 ็ง’ๅ†…ๅ›ž่ฐƒใ€‚้˜ฟ้‡Œไบ‘่ฟ™ๅ‡ ๅคฉ็ŸญไฟกๆˆๅŠŸ็އไนŸๆ้ซ˜ไบ†๏ผŒไฝ†ๆŽฅๆ”ถ็Šถๆ€ๆ—ถ้•ฟไพ็„ถๅพˆๆƒจ๏ผŒๆœ‰ไบ›็Ÿญไฟกๅ‘ๅ‡บๅŽปๅ‡ ๅˆ†้’Ÿ็”š่‡ณๅ‡ ๅๅˆ†้’Ÿๆ‰ๆœ‰็Šถๆ€ๅ›žๆฅใ€‚ๆˆ‘็›ฎๅ‰ๅทฒ็ปๆŠŠไธšๅŠกๅ…จ้ƒจ้ชŒ่ฏ็ ็Ÿญไฟก๏ผŒๅ’Œๅ…ถไป–้€š็Ÿฅ็Ÿญไฟก็š„ 40%ๅˆ‡ๅˆฐไบ†่ฟ™ๅฎถ็Ÿญไฟกๅ•†ไธŠใ€‚

็ญพๅๅฎกๆ ธๅคงๆฆ‚ 2 ๅทฅไฝœๆ—ฅๅฐฑๅ‘Š่ฏ‰ๆˆ‘ๅฏไปฅ่ฏ•ๅ‘ไบ†๏ผŒ้€ไบ† 30 ๆกไฝ“้ชŒ่ฏดไธๅคŸ่ฟ˜่ƒฝๆ‰พๅฅนๅŠ ๏ผŒ30 ๆก็”จไธ‹ๆฅๆ„Ÿ่ง‰ไธ้”™๏ผŒๅฐฑๅ……ไบ† 1k ๏ผŒ็ญพไบ†ๅˆๅŒใ€‚

ไผ˜็‚น๏ผšๅ‘้€ๆˆๅŠŸ็އ้ซ˜๏ผŒ็Šถๆ€ๆŽฅๆ”ถ้€Ÿๅบฆๅฟซ๏ผŒไพฟๅฎœ๏ผˆๆฏๆก็Ÿญไฟก 3 ๅˆ†ๅคš๏ผ‰
็ผบ็‚น๏ผš็Ÿญไฟก่ฟ”ๅ›ž็š„็Šถๆ€ๆ˜ฏ็”ตไฟก็š„่ฟ”ๅ›ž็š„ๅŽŸๅง‹็Šถๆ€๏ผˆๅณ DELIVRD ๏ผŒUT:0011 ่ฟ™็ง๏ผ‰๏ผŒๆฒกๆœ‰ๅƒ้˜ฟ้‡Œไบ‘้‚ฃๆ ท่‡ชๅทฑๅšไบ†ๅฝ’็ฑป๏ผŒๆฏ”่พƒ้บป็ƒฆใ€‚๏ผˆๅฝ“็„ถ๏ผŒๅฆ‚ๆžœไฝ ไธๅ…ณๅฟƒๅ‘้€ๅคฑ่ดฅๅŽŸๅ› ็š„ๅฏไปฅๅฟฝ็•ฅ๏ผ‰

ไป‹็ป็ป™ๅ’Œๆˆ‘ไธ€ๆ ท้‡ๅˆฐ็Ÿญไฟกๅ›ฐๆ‰ฐ็š„ V ๅ‹๏ผŒไธบ้ฟๅ…ๅนฟๅ‘ŠๅซŒ็–‘๏ผŒๆ„Ÿๅ…ด่ถฃ็š„ V ๅ‹ๅฏไปฅ็ป™ๆˆ‘้‚ฎไปถ d2luN3Byb0Bmb3htYWlsLmNvbQ== ๆˆ‘ๆŠŠๅฅนไปฌ้”€ๅ”ฎๅพฎไฟก่”็ณปๆ–นๅผๅ‘็ป™ๆ‚จใ€‚็บฏ่ง‰ๅพ—ไธ้”™ๆ‰€ไปฅๆŽจ่๏ผŒๆˆ‘ไธๆ‹ฟไปปไฝ•ๅ›žๆ‰ฃ๏ผŒไฝ†ไธ‡ไธ€่ฆๆ˜ฏไฝ ็”จ็š„ไธ็ˆฝๆˆ‘ไนŸไธ่ดŸ่ดฃๅ“ˆใ€‚

ๆˆ‘้—ฎ้”€ๅ”ฎๅฏนๅฎขๆˆทๆœ‰ๅ•ฅ่ฆๆฑ‚๏ผŒ่ฏด๏ผšๅˆๆณ•ๅˆ่ง„็š„่กŒไธš๏ผŒๅˆๆณ•ๅˆ่ง„ไผไธšไธปไฝ“๏ผŒๅˆๆณ•ๅˆ่ง„ๅ†…ๅฎนใ€‚ๆญฃไฝฟ็”จ้œ€่ฆ็ญพ่ฎข็บธ่ดจๅˆๅŒใ€‚

ๆŠŠ iCloud ่ดฆๅทๅ’Œ apple store ๅˆ†ๅผ€๏ผŒๆœ‰ๆฒกๆœ‰ไป€ไนˆไธๅฅฝ็š„๏ผŸ

Toby23: ็Žฐๅœจ็”จ็š„็พŽๅŒบ id
applemusic ๅคช่ดตไบ†๏ผŒๆƒณ่ฝฌๅˆฐๅœŸๅŒบ๏ผŒapple ๅ…จๅฎถๆกถ๏ผŒๅ…จ่ฝฌ็จๅพฎๆœ‰็‚น้บป็ƒฆ

่ฆไธ่ฆๅชๆŠŠ่ดฆๅท่ฝฌๅˆฐๅœŸๅŒบๅŽป๏ผŸ
ๆ—ฅ็‰ˆๆœบๅญๅ› ไธบ่ฟ˜ๆƒณไฟ็•™ apple intelligence ๆ‰€ไปฅไธๆƒณๅ›žๅ›ฝๅŒบ
โŒ