ã§ãããããåç¥ã®ãšãããHTMLã§ã¯å€§æåãšå°æåã¯åºå¥ãããŸããã myProp="123"
ã¯myprop="123"
ãšããŠè§£æãããããã«ããVue.jsã§èŠåãçºçããJavaScriptã§myProp
ãšããŠå®£èšããããããããåç
§ããã«ã¯my-prop="123"
ã䜿çšããå¿
èŠããããŸãmyProp
ã ããã¯åå¿è
ãããªãé »ç¹ã«åã¿ãŸãã
ããã«ãã«ã¹ã¿ã ã³ã³ããŒãã³ãã«ãåããããã³ã°ãé©çšããå¿ èŠããããŸããããšãã°ãã³ã³ããŒãã³ããå®çŸ©ããå Žåã¯æ¬¡ã®ããã«ãªããŸãã
import MyComponent from './my-component'
export default {
components: {
MyComponent // es2015 shorhand
}
}
ãã³ãã¬ãŒãã§ã¯ã <MyComponent>
<my-component>
ã䜿çšããå¿
èŠããããŸãã
ããã§ã®åä»ãªéšåã¯ãVue.jsããã³ãã¬ãŒãã®äºå解æããã©ãŠã¶ãŒã«äŸåããŠããããã§ããVue.jsããã³ãã¬ãŒããã³ã³ãã€ã«ãããŸã§ã«ãã±ãŒã¹æ å ±ã¯ãã§ã«å€±ãããŠããŸãã
ç©äºãããŸãããããã«ãããã³ã°ããžãã¯ã調æŽãããšã©ããªããŸããïŒ ããšãã°ããããå¯èœã«ããã«ã¯ïŒ
<MyComponent :myProp="msg"></MyComponent>
ã³ãŒãå ã®ãã£ã¡ã«ã±ãŒã¹ãšã±ããã±ãŒã¹ã®äžäžèŽãæé€ããããšã«å ããŠãã³ã³ããŒãã³ããšå°éå ·ã«PascalCase / camelCaseã䜿çšããããšãéžæããå®éçãªçç±ãããã€ããããŸãã
myProp
察this['my-prop']
ïŒimport MyComp from './my-comp'
ãå®è¡ã§ããŸããã my-comp
ã¯åã«æå¹ãªå€æ°åã§ã¯ãããŸããã ãŸããES2015ãªããžã§ã¯ãã®ãªãã©ã«ã®çç¥åœ¢ã䜿çšãããšã components: { MyComp }
ãå®è¡ã§ããŸããåºæ¬çãªå®è£
ã¯ãå°éå
·ãšã³ã³ããŒãã³ããªãã·ã§ã³ãåŠçãããšãã«ãããããå°æåã«æ£èŠåããããšã§ãã ãã®ããã«ãããšãå
éšç
§åããã»ã¹äžã«åçŽã«mycomponent
ãšmyprop
ã«ãªããŸãããã¢ããªã³ãŒãã§ç®çã®ã±ãŒã¹ã䜿çšããããšã¯ã§ããŸãã ïŒå®éããŠãŒã¶ãŒã¯ãããã®å
éšã«ã€ããŠç¥ãå¿
èŠãããããŸããïŒ
æœåšçãªæžå¿µïŒ
myProp
ãšMyProp
ã¯ããã³ãã¬ãŒãã§ã¯åããã®ãšããŠæ±ãããŸãã ãã ããåãã³ã³ããŒãã³ãå
ã«2ã€ã®å°éå
·ãŸãã¯2ã€ã®ã³ã³ããŒãã³ãã倧æåãšå°æåã ãã§åºå¥ããããšã¯æå³ããªãããã®ãããªäœ¿çšæ³ãç°¡åã«æ€åºããŠèŠåããããšãã§ããŸããhtml
<MyComponent @myEvent="handleIt"></MyComponent>
ããã¯åºæ¬çã«ãã€ãã³ãåã§å€§æåãšå°æåãåºå¥ãããªããªãããšãæå³ããŸããããã¯ãçŽç²ãªJavaScriptã§ã®ã€ãã³ãã·ã¹ãã ã®äœ¿çšã«åœ±é¿ãããããå°éå
·ãã³ã³ããŒãã³ãåããã倧ããªæå³ããããŸãã ãã¹ãŠã®ã€ãã³ãåãå°æåã«æ£èŠåããããšã¯æå³ããããŸããïŒ ç¹°ãè¿ãã«ãªããŸããã2ã€ã®ã€ãã³ããã±ãŒã¹ã«ãã£ãŠã®ã¿åºå¥ãããããšã¯ãã£ãã«ãããŸããïŒããšãã°ãåãã¢ããªã«ç°ãªãããšãè¡ãmyEvent
ãšmyevent
ã®äž¡æ¹ãããïŒããããã«ã€ããŠãã£ãŒãããã¯ãåãåããããšæããŸãã
<MyComponent :myProp="msg"></MyComponent>
+
ã³ã³ããŒãã³ããšã¿ã°ã®éãã確èªããããã«ããã®ããã«æžãããããšããããããŸã
+1
ãã¹ãŠã®ã€ãã³ãåãå°æåã«æ£èŠåããããšã¯æå³ããããŸããïŒ
ã¯ãïŒ ã³ãŒããèªã¿ããããªãã®ã§ãããã¯çã«ããªã£ãŠããŸãã ç§ã¯åžžã«ã€ãã³ãåãå°æåã®ãŸãŸã«ãããã£ã¡ã«ã±ãŒã¹ã§ã¯ãªãããã·ã¥ã§åºåããŸãã ãã£ã¡ã«ã±ãŒã¹ã®ã€ãã³ãåã«èŠåãè¿œå ããã®ãè¯ããšæããŸãã
ããã¯ãVuejsãAngularã®ãããªåæ§ã®ã¢ãããŒããè¿œæ±ããHTMLä»æ§ããé¢ããããšãæå³ããŸããïŒ
ããã©ãŒãã³ã¹äžã®æžå¿µã¯ãããŸããïŒ
æœåšçãªæžå¿µã«ã€ããŠã®ããã€ãã®èãïŒ
var CamelCase
ã¯ã¯ã©ã¹ãåç
§ãã var camelCase
ã¯éã¯ã©ã¹å€æ°var camelCase = new CamelCase();
ãåç
§ããŸãã ãã ããã³ã³ããŒãã³ãã«ã¡ãªãã§åä»ããããã¯ã©ã¹ãäœæããããªãã®ã§ããããåé¡ã«ãªããšã¯æããŸãããç§ã®æ倧ã®æžå¿µã¯ã人ã
ãã³ãŒãã£ã³ã°ããæ¹æ³ã«å¥åŠãªççŸãå°å
¥ããããšã§ãã ããšãã°ããããã¯ãã¹ãŠæå¹ã§åäžã§ãïŒ :myprop=""
:myProp=""
:mYpRoP=""
:my-prop=""
ã
ðããŒã¯ã¢ããã«ã¯ã±ããã±ãŒã¹ããã³ãŒãã«ã¯ãã£ã¡ã«ã±ãŒã¹ãå ¥ããŠãã ããã ããã¯HTMLä»æ§ã®äžéšã§ãããã±ãŒã¹ãç¡èŠãããšãä»ã®ãã¬ãŒã ã¯ãŒã¯ããæ¥ã人ãããã§ã«æšæºãåŠç¿ããŠãã人ã«ãšã£ãŠããã倧ããªåŠç¿æ²ç·ã«ãªããŸãã
@Teevioã«åæããŸããäžè²«æ§ã倱ãããŸã
HTMLã¯kebab-caseã䜿çšããŠãããECMAScriptããã£ã¡ã«ã±ãŒã¹èšèªã§ããããšãã³ãã¥ããã£æšæºãšããŠèªããããŠããŸãã _hiding_ã®ä»£ããã«ããããåé¢ããŠããå¿ èŠããããŸãïŒreactã§ã¯ãã«ã¹ã¿ã å±æ§ãã¬ã³ããªã³ã°ããããã«reactãååŸã§ããå¯äžã®æ¹æ³ã¯ãäžè²«æ§ã匷å¶ããdata- *ïŒaria- *ãä»ããããšã§ãïŒã
ãã£ã¡ã«ã±ãŒã¹<-> kebab-caseã_beginner_ã«ïŒããšãã°MDNãªã³ã¯ãŸãã¯ããã§ïŒèª¬æãããšãåå¿è ã®HTMLã®ç解ã«å€§ãã«åœ¹ç«ã¡ãŸãã
Evanã«åæããŸããèªã¿ããããšã³ãŒãã®äžè²«æ§ãããéèŠã§ãïŒ
+1
ç§ã«ã¯ãHTMLå ã«ãã£ã¡ã«ã±ãŒã¹ãããã®ã¯æ¬åœã«å¥åŠã«èŠããŸãã
HTMLã¯HTMLãJSã¯JS
çŸåšã®ããŒãžã§ã³ã¯åé¡ãããŸãã
Vueã6ãæé䜿çšããŠããã®ã§ãããã§ãæ¯åç§ãååŸããŸã:( Vueã®èŠåã¯éåžžã«åªããŠããã®ã§å€§ããããšã§ã¯ãããŸããããç§ãäœããããã¯ããã£ãŠããŸãããããã§ã¢ã€ãã¢ãå®å šã«ç解ãã+ 1ããµããŒãã§ããŸã
+1äžäœäºææ§ããããŸãã
+1
åæããŸããã äžäœäºææ§ãç¶æããå¿
èŠããããŸãã
ãã¹ãŠã®ã€ãã³ãåãå°æåã«æ£èŠåããããšã¯æå³ããããŸããïŒ
@ azamat-sharapovã«åæããŸã
@Teevio Vueã³ã³ããŒãã³ãã¯å€§ãŸãã«ã¯ã©ã¹ã§ãã var MyComp = Vue.extend({ .. })
ãå®è¡ãããšã var myComp = new MyComp()
ãå®è¡ã§ããŸãã è€æ°ã®æå¹ãªæ§æã®åé¡ã«ã€ããŠã¯ããã§ã«ååšããŠããŸããHTMLã¯ãã¹ãŠã®ã±ãŒã¹æ
å ±ãç Žæ£ããã ããªã®ã§ã :my-prop
ã :MY-PROP
ãããã³:mY-pRop
ãã¹ãŠçŸåšãšåãããã«æ©èœããŸãã ææ¡ãããæ©èœãšå€§å·®ãããŸããã ãã¹ãŠã®ã¹ã¿ã€ã«ã®è°è«ãšåæ§ã«ãããã¯ãã¹ãŠã¹ã¿ã€ã«ãéžã³ãããã«åºå·ããããšã§ãã
@ jamesxv7 @ moe-szyslak @jonagoldmanããHTMLæšæºããã®ç§»è¡ãæžå¿µããŠãããã®ä»ã®äººã ïŒãã£ã¡ã«ã±ãŒã¹ã®ã¿ã°/å±æ§ãHTMLã§èšè¿°ããããšã¯å®å šã«æå¹ã§ããã¿ã°/å±æ§åã®ç §åã¯ã倧æåãšå°æåãåºå¥ããã«å®è¡ãããŸãã ã ããã¯ä»æ§ãèšãããšã§ãïŒ
HTMLæ§æã®ããã¥ã¡ã³ãïŒ
HTMLèŠçŽ ã®ã¿ã°åã¯ããã®ããã¥ã¡ã³ãã®HTMLèŠçŽ ã»ã¯ã·ã§ã³ã«èšèŒãããŠããèŠçŽ ã®ååãšå€§æåãšå°æåãåºå¥ããªãäžèŽã§ããå°æåãšå€§æåã®ä»»æã®çµã¿åããã§èšè¿°ã§ããŸãã ã€ãŸããã¿ã°åã§ã¯å€§æåãšå°æåãåºå¥ãããŸããã
HTMLèŠçŽ ã®å±æ§åã¯ããã®ããã¥ã¡ã³ãã®HTMLèŠçŽ ã»ã¯ã·ã§ã³ã«èšèŒãããŠããå±æ§ã®ååãšå€§æåãšå°æåãåºå¥ããªãäžèŽã§ããå°æåãšå€§æåã®ä»»æã®çµã¿åããã§èšè¿°ã§ããŸãã ã€ãŸããå±æ§åã§ã¯å€§æåãšå°æåãåºå¥ãããŸããã
ãããã£ãŠãPascalCase / camelCaseã䜿çšãããšã³ãŒãã®äžè²«æ§/å¯èªæ§ãåäžããå Žåã¯ãå®å šã«ä»æ§ã«æºæ ããŠããŸãã ããã¯ãã¹ãŠã®äººã«åœãŠã¯ãŸãããã§ã¯ãããŸããããã±ããã±ãŒã¹ã奜ãå Žåã¯ããã䜿ãç¶ããããšãã§ããŸãã
ç¹ã«ã @ jamesxv7ã«é¢ããŠïŒããã¯Angular2ãè¡ã£ãŠããããšãšã¯ç°ãªããŸãã Angular 2ã¯ãã«ã¹ã¿ãã€ãºãããHTMLããŒãµãŒãå°å ¥ããããšã«ããããã³ãã¬ãŒãã§å€§æåãšå°æåãåºå¥ããŸãã ããã©ããããVueã¯ãJSã®å¯Ÿå¿ãã倧æåãšå°æåãåºå¥ããªãããã«ããããšã§ãå®éã«ã¯ä»æ§ã«åŸããŸãã
ç§ã¯ã±ãããhtmlã§ä¿æããããšã奜ã¿ãŸãã ç§ã¯äžè²«æ§ã®ã¢ã€ãã¢ã奜ãã§ãããã¹ããã¯ã³ã³ãã©ã€ã¢ã³ã¹ã®ã¢ã€ãã¢ããã£ãšå¥œãã§ãã
ãã£ã¡ã«ã±ãŒã¹ã¿ã°ãèŠã€ãããŸããïŒ
ã HTMLã§ã¯å€§æåãšå°æåã¯åºå¥ãããŸããã ã€ãããŸã 代ããã¯ã Vueã¯ãJavaScriptã®ãã£ã¡ã«ã±ãŒã¹IDã§å®çŸ©ãããã³ã³ããŒãã³ããšèªåçã«ç §åããŸãã
ãã®èŠåã¯ãã³ã³ããŒãã³ãã®ç»é²ãã©ã®ããã«æ©èœãããã«ã€ããŠã¯ãã§ã«ããªãç°¡æœã§ãã ããã¯èšã£ãŠããä»ã®äººãèšã£ãŠããããã«ãã±ãããæžãç¶ãããªãã·ã§ã³ããŸã ããéããHTMLã§ãã£ã¡ã«ã±ãŒã¹ãèš±å¯ããããšã¯çŽ æŽãããããšã ãšæããŸãã
@ yyx990803ãããåæããŸããã ããã«å察ããããã«ã§ããã ãå€ãã®è°è«ãèããããšããŠããã ãã§ãããæ£çŽãªãšãããç§ã«ã¯åºå·ãããã®ã¯ãããŸããã ããªããèšã£ãããã«ãäžæ¥ã®çµããã«ç§ãã¡ã¯æäœã®éžæã«ã€ããŠè°è«ããŠããŸãã ç§ã¯å人çã«ãæ°ãããã®ã䜿çšãããªãã·ã§ã³ãæã£ãŠããéïŒããã匷å¶ãããªãã§ïŒç§ãã¡ããã§ã«æã£ãŠãããã®ã«åºå·ããããšãã§ããéããç§ã¯èšåãããå€æŽã§ã¯ãŒã«ã ãšæããŸãã
ã±ããã±ãŒã¹ããŸã æ©èœãããã£ã¡ã«ã±ãŒã¹/ãã¹ã«ã«ã±ãŒã¹ã䜿çšããããšãBCãå£ããªããªãã·ã§ã³ã§ããå Žåããããã䜿çšãããšããç§ã¯è¿œå ã«å察ããããšã¯ã§ããŸããã ããã¯ç§ã«äœãéãããšãããããããªå€åã§ã¯ãããŸããã ããã¯åãªãæ°ãããªãã·ã§ã³ã§ãã
ç§ãèšãããšãææ¡ããããšãã§ããå¯äžã®ããšã¯ããã®ãªãã·ã§ã³ãååã«ææžåãããŠããããšã確èªããããšã§ãã
ã¹ã³ãã
ãã¶ãç§ãã¡ã¯ãããããªãã·ã§ã³ãäœãããšãã§ããŸãïŒèŠåãŸãã¯ç¡èŠã
ã³ã³ããŒãã³ãããããšããŸãããïŒ myComponent
ãããŠç§ã¯ãããhtmlã§mycompOnent
ãšåŒãã§ããŸããç§ã¯å人çã«æ¬¡ã®ãããªèŠåã奜ã¿ãŸãã
we found something that would match "myComponent": "mycompOnent" (line 152), use "my-component" instead
ãã¡ããå°éå
·ãåãã§ãã
æåã®è©Šã¿ã§åãçµãããšããããåŸã®èªã¿ããããéèŠã ãšæããŸãã
ç§ã¯ãŸããã±ããã±ãŒã¹/ãã£ã¡ã«ã±ãŒã¹ã®åé¡ã«ééããŸããã ããããæ¬åœã®åé¡ã¯ãäœãæªãã®ããšããèŠåã衚瀺ãããªãã£ãããšã§ã;ïŒ
ããã©ã«ãã§ã¯ãèŠåã¯ãªããæ£åžžã«æ©èœããå¯èœæ§ããããŸãããããã¯ç§ã«ã¯é¢ä¿ãããŸããã
ãŸããèŠåã¯ãããã°ã¢ãŒãã§ã®ã¿è¡šç€ºãããã¯ãã§ãã
atone
vs a-tone
vs at-one
ã®ãããªãã®ã¯ã©ãã§ããïŒ ãããããããã¯éåžžã«ãŸããªåºæ¥äºã ãšæããŸãã
@simplesmiler kebabã®å€§æåãšå°æåã®åºå¥ã¯ãå€ãã«ãŒã«ã䜿çšããŠå€§æåãšå°æåã®åºå¥ãšäžèŽããŸãã
ããã¯ãWebæšæºã®éææ§ãä¿é²ãããã®ã§ã¯ãããŸããã ã«ã¹ã¿ã èŠçŽ ã®ä»æ§ã§ã¯ãååã«ã¯ãã€ãã³ãå«ããå¿
èŠããããšèŠå®ãããŠããŸãïŒ <my-component/>
@simplesmilerãèšã£ãããšã¯ã©ãã§ããïŒ addOne
ãšadDone
ã¯åãã³ãŒããå®è¡ããŸãã ããã¯ãã€ãã³ãã®å®è£
ã«ãšã£ãŠç¹ã«åä»ã§ãã
ãŸããhtmlã¯å€§æåãšå°æåãåºå¥ããªããããã©ã€ãã©ãªãã倧æåãšå°æåãåºå¥ãããšããèããå°å ¥ããªãã§ãã ããã ãã®å®è£ ã¯htmlã®ã±ãŒã·ã³ã°ã®ã¿ãä¿é²ããŸãããããã¯ç§ã®æèŠã§ã¯æªãèãã§ãã
ãŸãããã¡ã€ã«åã«ã¯ãã€ãã³åºåãã䜿çšããŸãã ããã§ãããããåé€ããŠãã±ãŒã·ã³ã°ã®è¿œå ãéå§ããå¿ èŠããããŸããïŒ
æåŸã«ããã€ãã³ãšã±ãŒã·ã³ã°ã·ã¹ãã ãå ±åãããããšã§ãããŒã ã®æ°ããéçºè åãã«ããŸããŸãªã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ãä¿é²ããŸãã
ç§ã¯@paulpflugã®ã¢ãããŒãã奜ã¿ãŸãã ãã®é åã§ã®é©åãªèŠåã¯å€§ãã«åœ¹ç«ã¡ãŸãã
ç§ã¯HTMLPascal / Camelã±ãŒã¹ãäœãã®ã奜ãã§ã¯ãããŸããã ããã¯ãŠã§ãæšæºãç ŽããŸããç§ã¯äžè²«æ§ãä¿ã€ããšã¯çŽ æŽãããããšãç¥ã£ãŠããŸãã
ç©äºãæãå°ããªäžè²«æ§ã®ãããã®ã«ããããšããããšã§ãè€éãã®å¥ã®å±€ãè¿œå ããŸãã ããã¯ãŸãæªãç¿æ £ãèªæãããããããŸããã ã©ã€ãã©ãªã¯ãéçºè ã誀解ãããªãããã«æšæºãç¶æããããšãä¿é²ããå¿ èŠããããŸãããã€ã®æ¥ããVueã䜿çšããªãå Žæã§äœæ¥ããªããã°ãªãããHTMLãç°ãªãæ¹æ³ã§è§£æãããçç±ãããããªããªãå¯èœæ§ãããããã§ãã
ç§ã¯@paulpflugã«å®å šã«åæããŸããèŠåãè¿œå ãããšãæ¬çªã³ãŒãã®äœæ¥ãæžããéçºè ã¯æå¹ãªã³ãŒããæžãããšãã§ããããã«ãªããŸãã
ãªããããå®è£ ãã¹ãã§ãªãã®ãã«ã€ããŠã®è¯ãè°è«ã®ã±ãŒã¹ïŒhttpïŒ //eisenbergeffect.bluespire.com/on-angular-2-and-html/
ããã¯äžè¬çã«ã人ã ãAngular 2ãå«ãçç±ãšããŠåŒ·èª¿ãããŠããŸããç§ã¯ãã©ã€ãã©ãªãæšæºã«æºæ ãããããšã«å®å šã«åæããŸãã HTMLã¯å€§æåãšå°æåãåºå¥ããããã«äœæãããŠããŸããããåé¡ãå€ãããŠæè»æ§ãé«ãããç¶æ³ãçºçããããã«ç Žæ£ãããŸããã
@ blake-newmanïŒããã«é¢ããŠã @ yyx990803ã¯ä»¥åã®ã³ã¡ã³ãã§ãã§ã«ããã«ã€ããŠè©±ããŠãããšæããŸãã
@ jamesxv7ãã®ã³ã¡ã³ãã¯ãããããªãããŸããŸãšããŠããŸãã Evanã¯HTMLä»æ§ã®å€æŽãææ¡ããŠããã®ã§ã¯ãªããVueãã³ã³ããŒãã³ãåãèŠã€ããæ¹æ³ãå€æŽããããšãææ¡ããŠããŸãã ã±ãããã©ã¯ãã«å€æããŠäžèŽããã³ã³ããŒãã³ããèŠã€ããã®ã§ã¯ãªããããã·ã¥ãåé€ããŠïŒã±ããã«å¯Ÿå¿ããããïŒã倧æåãšå°æåãåºå¥ããã«ã³ã³ããŒãã³ããæ€çŽ¢ããŸãã HTMLèªäœã¯åŒãç¶ãä»æ§ã«æºæ ããŸãã ãŸããå¿ èŠãªã±ãŒã¹ã䜿çšã§ããããã«ãªããŸãã ããã¯ç§ã«ã¯æªãéžæã§ãæªãéžæã§ããªãããã§ã:)
@ yyx990803 <MyComponent>
ã¹ã¿ã€ã«ãããã¢ãŒãã¹ã¿ã€ã«ã«ããäºå®ã§ããïŒã€ãŸããããã¥ã¡ã³ããšäŸã¯ãã®ããã«èšè¿°ãããŸãïŒããããšãåãªããªãã·ã§ã³ã§ãããã±ããã±ãŒã¹ã¹ã¿ã€ã«ãåŒãç¶ãäž»èŠãªã¹ã¿ã€ã«ã«ãªããŸããïŒ
@ blake-newmanã¯ãã®ã³ã¡ã³ããèªãã§ããŸã-ããã¯æšæºã«æºæ ããŠããŸã:)
@paulpflug @guidobouman ïŒææ°ããŒãžã§ã³ã®vue-loader
ãŸãã¯vueify
ã䜿çšããŠããå Žåã¯ããã£ã¡ã«ã±ãŒã¹ã®ã¿ã°ãšå±æ§ã«é¢ããèŠåããã§ã«è¡šç€ºãããŠããŸãã ãã ããå®è¡æã«HTMLããŒãµãŒã®åäœã«ããã±ãŒã¹æ
å ±ãæ¢ã«å€±ãããŠããããããã£ã¡ã«ã±ãŒã¹ã®ãã§ãã¯ã¯ã³ã³ãã€ã«æã«å®è¡ããå¿
èŠããããŸãã ãããã£ãŠã vue-loader
ãŸãã¯vueify
ãªãã§Vueã䜿çšããŠããå ŽåãèŠåã¯è¡šç€ºãããŸããïŒã§ããŸããïŒã
@ yyx990803-ããããWebã³ã³ããŒãã³ãçšã«ãªã³ã¯ãããä»æ§@ blake-newmanã¯ã次ã®ããã«è¿°ã¹ãŠããŸãã
ã«ã¹ã¿ã èŠçŽ ã¿ã€ãã¯ãã«ã¹ã¿ã èŠçŽ ã€ã³ã¿ãŒãã§ã€ã¹ãèå¥ããNCNameãããã¯ã·ã§ã³ãšäžèŽããå¿ èŠãããã_U + 002D HYPHEN-MINUSæå_ãå«ãå¿ èŠãããã_倧æåã®ASCIIæåãå«ãŸãªãå¿ èŠããã_æåã®ã·ãŒã±ã³ã¹ã§ãã
ãããVueã³ã³ããŒãã³ããšã©ã®ããã«é¢é£ããŠãããã¯ããããããŸããã ããã¥ã¡ã³ãã§ã¯ãWebã³ã³ããŒãã³ãã®æšæºã«å€§ãŸãã«åŸãããã«ããŠããŸãã
Vue.jsã³ã³ããŒãã³ãã¯ãWebã³ã³ããŒãã³ãä»æ§ã®äžéšã§ããã«ã¹ã¿ã èŠçŽ ãšéåžžã«ãã䌌ãŠããããšã«æ°ä»ãããããããŸããã å®éãVue.jsã®ã³ã³ããŒãã³ãæ§æã¯ä»æ§ã«åºã¥ããŠå€§ãŸãã«ã¢ãã«åãããŠããŸãã
ãããã£ãŠããã£ã¡ã«ã±ãŒã¹ãšãã¹ã«ã«ã±ãŒã¹ãèš±å¯ããã«ã¯ãæåã«ä»æ§ãå€æŽããå¿ èŠããããšæããŸãã
ã¹ã³ãã
@smolinari Vueã®ããã¥ã¡ã³ãã«ãããšãããã¯ãå³å¯ã«ãã§ã¯ãªãã倧ãŸãã«ã¢ãã«åãããŠããããšã®ããšã§ãããç§ã®èãã§ã¯ããã®å€æŽã®äœå°ããããŸãã
@ yyx990803ã±ãŒã¹æ
å ±ã倱ãããå¯èœæ§ããããŸãããããã§ãèŠåã衚瀺ãããå¯èœæ§ããããŸãã
ãã³ãã¬ãŒãã«ãmycOmponentããšæžããå Žåãããã¯mycomponent
ã«è§£æãããŸãããæåŸ
ãããã®ã¯my-component
ãããããVueïŒãããã°ã¢ãŒãïŒã¯my-component
以å€ã«$ mycomponent
ãæ¢ãå¿
èŠããããŸãmy-component
ãããŠééã£ã䜿çšæ³ã«ã€ããŠç§ã«èŠåããŸãã 倱ãããã±ãŒã¹æ
å ±ã¯ããã§ã¯éèŠã§ã¯ãããŸããã
èŠåãæå¶ãã代ããã«çŽæ¥äžèŽããããªãã·ã§ã³ããããŸãïŒææ¡ãããåäœãšåãã§ãïŒã
-1ãããã£ã¡ã«ã±ãŒã¹/ãã¹ã«ã«ã±ãŒã¹ãžã®ç§»è¡ã HTMLã§JSã®ãããªæ§æãèŠãã®ã¯å°ãäžå¿«ã§ãã jsxã«èããããªãã®ãšåãçç±ã
@paulpflugã®ææ¡ã«+1ã åé¡ãæ°äººç ä¿®ã®åå¿è
ã§ããå Žåã¯ããŠãŒã¶ãŒã«åé¡ãéç¥ããèŠåãçºè¡ããŠã¿ãŸãããïŒ
æå¹ãªã¢ã€ãã¢ã®ããã«èããã@paulpflug ïŒ
ç§ã¯åæããŸã'mycomponent' is missing, did you mean 'my-component'?
ãšããèŠåããããšããµã€ã¬ã³ã眮æãããæ°åãè¯ããªããŸãã
@ yyx990803ã°ããŒãã«ãªãã·ã§ã³APIã§ãããè¡ãããšã¯å¯èœã§ããïŒ
äŸãã°
Vue.config.kebab = true
ïŒããã©ã«ãïŒ-> <my-component :my-prop="msg"></my-component>
Vue.config.kebab = false
-> <MyComponent :myProp="msg"></MyComponent>
@ yyx990803
ãã çåã«æã£ãŠããã®ã§ãããç§ãã¡ãç®æããŠããçæ³ã¯äœã§ããïŒ
@rpkilbyãèšã£ãããã«ã <MyComponent myCustomProp="myProp" data-name="prop" aria-label="Close" onclick="myDialog.close()">
ã¯å¥åŠã«èŠããŸãã
åºæ¬çã«ãjsãšhtmlã¯ç°ãªããã¯ãããžãŒã§ãããç°ãªãåœåã·ã¹ãã ã䜿çšããŠãããããåé¡ãååšããŸãã ãããŠãäž¡æ¹ã®ãã¯ãããžãŒã§åãã±ãŒã¹ïŒã±ãããŸãã¯ã©ã¯ãïŒã䜿çšãããšãå¥åŠãã¯ããå Žæããå¥ã®å Žæã«ç§»ããŸãããæ ¹æ¬çãªåé¡ã¯è§£æ±ºããŸãã
ã§ããããç§ãã¡ã«ã§ããæåã®ããšã¯ç·ãåŒãããšã ãšæããŸãã ãããŠçŸåšã®è¡ãããªãã¡ã htmlã³ã³ããã¹ãã®ã±ããã±ãŒã¹ãšjsã³ã³ããã¹ãã®camleCaseïŒããã³PascalCaseïŒã¯éåžžã«åªããŠããŸãã
ãããã£ãŠãIMOã§ã¯ãããè¯ãèŠåãæ¢ãã®ã§ã¯ãªããçŸåšã®èŠåããµããŒãããå¿ èŠããããŸãã ãããŠãã¡ãããåå¿è ãå©ããããã«èŠåã䜿çšããŠãã ãã
@ prog-rajkamalãããç§ã¯ä»ãèŠåãå®è£ ããåŸåããããŸãã
ç§ã¯ä»ãèŠåãè¿œå ããã ãã§ïŒ+ 1ïŒã«æ祚ããŸãã
ã¹ã³ãã
ïŒ+1ïŒèŠåãè¿œå ãããã
ïŒ+1ïŒèŠåã«ã€ããŠã
ccf9bede6bc39fb62e43e1efe98136c5f35dae6bïŒd7b55c4ee8491dbd853e28a1527050d2d1e7deabçµç±ã§ã¯ããŒãº
èŠåã¯çŽ æŽãããã§ãããã ã«ã¹ã¿ã ã€ãã³ããå¿çãããªãã£ãçç±ãç解ããããã«1æéè²»ãããŸããïŒçãã¯ãã£ã¡ã«ã±ãŒã¹ã®ååã§ããïŒã
PascalCase
ã³ã³ããŒãã³ããŸãã¯ããããã®kebab-case
ããŒãžã§ã³ã«å¿çãã察å¿ããã³ã³ããŒãã³ããŸãã¯ãããããããå Žåã¯ãèŠåã衚瀺ãããŸãã ã€ãã³ãã§ã¿ã€ããã¹ãããå ŽåãVueãããã«ã€ããŠã§ããããšã¯ããŸããããŸããã
ãããšãã v-on:keyup
ã@keyup
ã®ãããªããã©ã«ãã®æ¢åã®ã€ãã³ãå°éå
·ãæå³ããŸããïŒ
ãã³ãã¬ãŒããã¡ã€ã«ã®@guidoboumanã«ã¯<my-component v-on:customEvent="myMethod">
ããããŸããã åã³ã³ããŒãã³ãã«this.$emit('customEvent');
ããããŸããã ãã¡ããã芪ãèããŠããå®éã®ã€ãã³ãã¯customEvent
customevent
ã§ããããããã°ãç°¡åã§ã¯ãªãããããããç解ããã®ã«äœå¹ŽãããããŸããã ç§ã®ãããªç©å¿ãã®äººã«ãšã£ãŠã¯ããã£ã¡ã«ã±ãŒã¹ã®å±æ§ããã®ããã«è§£æãããªãããšãèŠåããã®ã¯è¯ãããšã ãšæã£ãŠããŸããã ããããããã¯ãã§ã«äžã§è°è«ãããŠããã®ã§ããããããªããç§ã¯ãè©«ã³ç³ãäžããŸãã
@anthonygoreã¯æ®å¿µãªããäžå¯èœã§ãããªããªããVueãã¢ã¯ã»ã¹ããåã«ãã©ãŠã¶ãhtmlãå°æåã«å€æããããã§ãã
ç§ã®è³ªåã¯ããªãVueãç§ãã¡ã®ããã«ãããå€æã§ããªãã®ã§ããïŒ ãªãã±ããã«ã€ããŠèŠããŠããå¿ èŠãããã®ã§ããïŒvueãã¡ã€ã«ã§ïŒ ããã¯åå¿è ã«ãšã£ãŠç©äºãããåä»ã«ããŸã...ç§ã¯ã¡ããã©ãã®ããã«æåŸã®20åãç¡é§ã«ããŸãã...
ã¡ã¢ãªã«ã³ããããã1ã€ã®ã«ãŒã«ïŒ HTML = kebab-case, JavaScript = camelCase
HTMLãšã¯ãå±æ§ãšã¿ã°ãæå³ããŸãã v-bind
ã䜿çšããå Žåãå±æ§å€ã¯JavaScriptåŒã§ããããã2çªç®ã®ã¹ããŒãã¡ã³ããé©çšãããŸãã
ç§ã®è³ªåã¯ããªãVueãç§ãã¡ã®ããã«ãããå€æã§ããªãã®ã§ããïŒ ãªãvueãã¡ã€ã«ã®kebab-caseã«ã€ããŠèŠããŠããå¿ èŠãããã®ã§ããïŒ ããã¯åå¿è ã«ãšã£ãŠç©äºãããåä»ã«ããŸã...ç§ã¯ã¡ããã©ãã®ããã«æåŸã®20åãç¡é§ã«ããŸãã...
ç§ã¯ãããã°ã°ã£ãã ãã§ã¯ãªãã£ãã®ã§ãæåŸã®1.5æéç¡é§ã«ãªããŸãã... dxmn
æãåèã«ãªãã³ã¡ã³ã
ã¡ã¢ãªã«ã³ããããã1ã€ã®ã«ãŒã«ïŒ
HTML = kebab-case, JavaScript = camelCase
HTMLãšã¯ãå±æ§ãšã¿ã°ãæå³ããŸãã
v-bind
ã䜿çšããå Žåãå±æ§å€ã¯JavaScriptåŒã§ããããã2çªç®ã®ã¹ããŒãã¡ã³ããé©çšãããŸãã