์ฐ๋ฆฌ ๋ชจ๋ ์๋ค์ํผ HTML์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. myProp="123"
๋ myprop="123"
๋ก ๊ตฌ๋ฌธ ๋ถ์๋๋ฉฐ ์ด๋ก ์ธํด Vue.js์์ my-prop="123"
๋ฅผ ์ฌ์ฉํ์ฌ JavaScript์์ myProp
๋ก ์ ์ธ๋ prop์ ์ฐธ์กฐํด์ผ ํ๋ค๋ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
๋ํ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ ์์์ ๋์ผํ ๋งคํ์ ์ ์ฉํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ตฌ์ฑ ์์๋ฅผ ์ ์ํ ๋:
import MyComponent from './my-component'
export default {
components: {
MyComponent // es2015 shorhand
}
}
ํ
ํ๋ฆฟ์์ <MyComponent>
๋์ <my-component>
๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ฑ๊ฐ์ ๋ถ๋ถ์ Vue.js๊ฐ ํ ํ๋ฆฟ์ ์ฌ์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์ ์์กดํ๊ธฐ ๋๋ฌธ์ Vue.js๊ฐ ์ปดํ์ผํ ๋ ์ผ์ด์ค ์ ๋ณด๊ฐ ์ด๋ฏธ ์์ค๋๋ค๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋๋ก ๋งค์นญ ๋ก์ง์ ์กฐ์ ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์๋ฅผ ๋ค์ด ๋ค์์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
<MyComponent :myProp="msg"></MyComponent>
์ฐ๋ฆฌ ์ฝ๋์์ camelCase ๋ kebab-case ๋ถ์ผ์น๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ ์ธ์๋ ๊ตฌ์ฑ ์์ ๋ฐ ์ํ์ PascalCase/camelCase๋ฅผ ์ ํธํ๋ ๋ช ๊ฐ์ง ์ค์ฉ์ ์ธ ์ด์ ๊ฐ ์์ต๋๋ค.
myProp
๋ this['my-prop']
)import MyComp from './my-comp'
๋ฅผ ํ ์ ์์ง๋ง my-comp
๋ ๋จ์ํ ์ ํจํ ๋ณ์ ์ด๋ฆ์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ES2015 ๊ฐ์ฒด ๋ฆฌํฐ๋ด ์๊ธฐ๋ฅผ ์ฌ์ฉํ๋ฉด components: { MyComp }
ํ๋ฉด ๋ฉ๋๋ค.๊ธฐ๋ณธ ๊ตฌํ์ ์ํ ๋ฐ ๊ตฌ์ฑ ์์ ์ต์
์ ์ฒ๋ฆฌํ ๋ ์๋ฌธ์๋ก ์ ๊ทํํ๋ค๋ ๊ฒ์
๋๋ค. ์ด๋ฐ ์์ผ๋ก ๋ด๋ถ ์ผ์น ํ๋ก์ธ์ค ์ค์ ๋จ์ํ mycomponent
๋ฐ myprop
๊ฐ ๋์ง๋ง ์ฑ ์ฝ๋์์ ์ํ๋ ๋์๋ฌธ์๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. (์ฌ์ค ์ฌ์ฉ์๋ ์ด๋ฌํ ๋ด๋ถ ๊ธฐ๋ฅ์ ๋ํด ์ ํ์์กฐ์ฐจ ์์ต๋๋ค.)
์ ์ฌ์ ์ธ ์ฐ๋ ค ์ฌํญ:
myProp
๋ฐ MyProp
๋ ํ
ํ๋ฆฟ์์ ๋์ผํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ๊ตฌ์ฑ ์์์ ๋ ๊ฐ์ props ๋๋ ๋ ๊ฐ์ ๊ตฌ์ฑ ์์๋ฅผ ๋์๋ฌธ์๋ก๋ง ๊ตฌ๋ถํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ผ๋ฉฐ ์ด๋ฌํ ์ฌ์ฉ์ ์ฝ๊ฒ ๊ฐ์งํ๊ณ ๊ฒฝ๊ณ ํ ์ ์์ต๋๋ค.html
<MyComponent @myEvent="handleIt"></MyComponent>
์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฒคํธ ์ด๋ฆ์ด ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ์์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ด๋ฒคํธ ์์คํ
์ฌ์ฉ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ props ๋ฐ ๊ตฌ์ฑ ์์ ์ด๋ฆ๋ณด๋ค ๋ ํฐ ์๋ฏธ๋ฅผ ๊ฐ์ต๋๋ค. ๋ชจ๋ ์ด๋ฒคํธ ์ด๋ฆ์ ์๋ฌธ์๋ก ์ ๊ทํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์
๋๊น? ๋ค์ ๋งํ์ง๋ง, ๋ ๊ฐ์ ์ด๋ฒคํธ๊ฐ ๋์๋ฌธ์๋ก๋ง ๊ตฌ๋ถ๋๋ ๊ฒฝ์ฐ๋ ๋๋ฌผ์ง๋ง(์: ๋์ผํ ์ฑ์์ myEvent
๋ฐ myevent
๋ชจ๋ ๋ค๋ฅธ ์์
์ ์ํํ๋ ๊ฒฝ์ฐ) ์ด์ ๋ํ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค.
<MyComponent :myProp="msg"></MyComponent>
+
๋๋ ์ข
์ข
์ปดํฌ๋ํธ์ ํ๊ทธ์ ์ฐจ์ด์ ์ ๋ณด๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ์ฐ๊ณ ์ถ์ต๋๋ค.
+1
๋ชจ๋ ์ด๋ฒคํธ ์ด๋ฆ์ ์๋ฌธ์๋ก ์ ๊ทํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๊น?
๋ค! ์ฝ๋๋ฅผ ๋ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ ๋ ํญ์ ์ด๋ฒคํธ ์ด๋ฆ์ ์๋ฌธ์๋ก ์ ์งํ๊ณ ์นด๋ฉ์ผ์ด์ค ๋์ ๋์๋ก ๊ตฌ๋ถํฉ๋๋ค. Camelcase ์ด๋ฒคํธ ์ด๋ฆ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋ ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ Vuejs๊ฐ Angular์ ๊ฐ์ ์ ์ฌํ ์ ๊ทผ ๋ฐฉ์ ์ ์ถ๊ตฌํ๋ HTML ์ฌ์์์ ๋ฉ์ด์ง ๊ฒ์์ ์๋ฏธํฉ๋๊น?
์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
์ ์ฌ์ ์ธ ๋ฌธ์ ์ ๋ํ ๋ช ๊ฐ์ง ์๊ฐ:
var CamelCase
๋ ํด๋์ค๋ฅผ ์ฐธ์กฐํ๊ณ var camelCase
๋ ํด๋์ค๊ฐ ์๋ ๋ณ์ var camelCase = new CamelCase();
๋ฅผ ์ฐธ์กฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ตฌ์ฑ ์์์ ์ด๋ฆ์ ๋ฐ์ ๋ช
๋ช
๋ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.๊ฐ์ฅ ํฐ ์ฐ๋ ค๋ ์ฌ๋๋ค์ด ์ฝ๋ฉํ๋ ๋ฐฉ์์ ์ด์ํ ๋ถ์ผ์น๋ฅผ ๋์
ํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด :myprop=""
:myProp=""
:mYpRoP=""
:my-prop=""
๋ ๋ชจ๋ ์ ํจํ๊ณ ๋์ผํฉ๋๋ค.
๐ ๋งํฌ์ ์ ์ผ๋ฐฅ ์ผ์ด์ค๋ฅผ, ์ฝ๋์ ์นด๋ฉ ์ผ์ด์ค๋ฅผ ์ ์งํ์ธ์. ์ด๊ฒ์ HTML ์ฌ์์ ์ผ๋ถ์ด๋ฉฐ ๋์๋ฌธ์๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋ค๋ฅธ ํ๋ ์์ํฌ์์ ์จ ์ฌ๋๋ค์ด๋ ์ด๋ฏธ ํ์ค์ ๋ฐฐ์ด ์ฌ๋๋ค์๊ฒ ๋ ํฐ ํ์ต ๊ณก์ ์ด ๋ ๊ฒ์ ๋๋ค.
@Teevio ์ ๋์ํฉ๋๋ค. ์ผ๊ด์ฑ์ด ์์ค๋ฉ๋๋ค.
HTML์ kebab-case๋ฅผ ์ฌ์ฉํ๋ฉฐ ECMAScript๊ฐ camelCase ์ธ์ด๋ผ๋ ํ์ฉ๋ ์ปค๋ฎค๋ํฐ ํ์ค์ ๋๋ค. _hiding_ ๋์ ๋ถ๋ฆฌ๋ ์ํ๋ก ์ ์งํด์ผ ํฉ๋๋ค(๋ฐ์์์ ์ฌ์ฉ์ ์ ์ ์์ฑ์ ๋ ๋๋งํ๋ ๋ฐ ๋ฐ์์ ์ป์ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ผ๊ด์ฑ์ ์ ์ฉํ๋ data-* ๋ฐ aria-*๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค).
_beginner_์ camelCase <-> kebab-case๋ฅผ ์ค๋ช ํ๋ ์ด์ (MDN ๋งํฌ๋ฅผ ํตํด ๋๋ ์ฌ๊ธฐ๊น์ง)๋ ์ด๋ณด์์ HTML ์ดํด์ ํฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
Evan์ ๋ง์ ๋์ํฉ๋๋ค. ๊ฐ๋
์ฑ๊ณผ ์ฝ๋ ์ผ๊ด์ฑ์ด ๋ ์ค์ํฉ๋๋ค!
+1
๋์๊ฒ HTML ๋ด๋ถ์ camelCase๊ฐ ์๋ค๋ ๊ฒ์ ์ ๋ง ์ด์ํ๊ฒ ๋ณด์ผ ๊ฒ์ ๋๋ค.
HTML์ HTML, JS๋ JS
ํ์ฌ ๋ฒ์ ์ ๊ด์ฐฎ์ต๋๋ค
6๊ฐ์ ๋์ Vue๋ฅผ ์ฌ์ฉํด ์์ง๋ง ์ฌ์ ํ ๋งค๋ฒ ์ ๋ฅผ ์ป์ต๋๋ค :( Vue์ ๋ํ ๊ฒฝ๊ณ ๊ฐ ๋๋ฌด ์ข๊ธฐ ๋๋ฌธ์ ํฐ ๋ฌธ์ ๋ ์๋์ง๋ง ์ ๊ฐ ํ ์ผ์ ์๊ณ ์์ง๋ง ์ฌ๊ธฐ์์ ์์ด๋์ด๋ฅผ ์์ ํ ์ดํดํ๊ณ ์ง์ํ ์ ์์ต๋๋ค +1
+1 ์ด์ ๋ฒ์ ๊ณผ๋ ํธํ๋ฉ๋๋ค.
+1
๋๋ ๋์ํ๋ค. ์ฐ๋ฆฌ๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํด์ผ ํฉ๋๋ค.
๋ชจ๋ ์ด๋ฒคํธ ์ด๋ฆ์ ์๋ฌธ์๋ก ์ ๊ทํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๊น?
@azamat-sharapov์ ๋์ํฉ๋๋ค.
@Teevio Vue ๊ตฌ์ฑ ์์๋ ๋๋ต ํด๋์ค์
๋๋ค. var MyComp = Vue.extend({ .. })
ํ๋ฉด var myComp = new MyComp()
ํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ์ ํจํ ๊ตฌ๋ฌธ ๋ฌธ์ ์ ๊ดํด์๋ ์ด๋ฏธ ์กด์ฌํฉ๋๋ค. :my-prop
, :MY-PROP
๋ฐ :mY-pRop
๋ชจ๋ ํ์ฌ์ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค. HTML์ ๋จ์ํ ๋ชจ๋ ์ผ์ด์ค ์ ๋ณด๋ฅผ ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ์๋ ๊ธฐ๋ฅ๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค. ๋ชจ๋ ์คํ์ผ ์ธ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์คํ์ผ์ ์ ํํ๊ณ ๊ณ ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
@jamesxv7 @moe-szyslak @jonagoldman ๋ฐ HTML ํ์ค์์ ๋ฒ์ด๋๋ ๊ฒ์ ๋ํด ์ฐ๋ คํ๋ ๋ค๋ฅธ ์ฌ๋๋ค: HTML์์ camelCase ํ๊ทธ/์์ฑ์ ์์ฑํ๋ ๊ฒ์ ์์ ํ ์ ํจํฉ๋๋ค. ํ๊ทธ/์์ฑ ์ด๋ฆ ์ผ์น๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ์ํ๋ฉ๋๋ค. . ์ฌ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
HTML ๊ตฌ๋ฌธ์ ๋ฌธ์์์:
HTML ์์์ ํ๊ทธ ์ด๋ฆ์ ์ด ๋ฌธ์์ HTML ์์ ์น์ ์ ์ ๊ณต๋ ์์ ์ด๋ฆ๊ณผ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ๋์๋ฌธ์๋ฅผ ํผํฉํ์ฌ ์์ฑํ ์ ์์ต๋๋ค. ์ฆ, ํ๊ทธ ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค.
HTML ์์์ ์์ฑ ์ด๋ฆ์ ์ด ๋ฌธ์์ HTML ์์ ์น์ ์ ์ ๊ณต๋ ์์ฑ ์ด๋ฆ๊ณผ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ๋์๋ฌธ์๋ฅผ ํผํฉํ์ฌ ์์ฑํ ์ ์์ต๋๋ค. ์ฆ, ์์ฑ ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ PascalCase/camelCase๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ ์ผ๊ด์ฑ/๊ฐ๋ ์ฑ์ด ํฅ์๋๋ฉด ์์ ํ ์ฌ์์ ์ค์ํ๋ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ฌ๋์๊ฒ ํด๋น๋๋ ๊ฒ์ ์๋์ง๋ง ์ผ๋ฐฅ ์ผ์ด์ค๋ฅผ ์ ํธํ๋ค๋ฉด ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํนํ re @jamesxv7 : ์ด๊ฒ์ Angular 2๊ฐ ํ๋ ๊ฒ๊ณผ ๋ค๋ฆ ๋๋ค. Angular 2๋ ๋ง์ถคํ HTML ํ์๋ฅผ ๋์ ํ์ฌ ํ ํ๋ฆฟ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋๋ก ๋ง๋ค๊ณ ์์ต๋๋ค. ๋ฐ๋๋ก Vue๋ ์ค์ ๋ก JS ๋์ ํญ๋ชฉ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ก ํ์ฌ ์ฌ์์ ๋ฐ๋ฆ ๋๋ค.
๋๋ ์ผ๋ฐฅ์ html๋ก ์ ์งํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ๋๋ ์ผ๊ด์ฑ์ด๋ผ๋ ์์ด๋์ด๋ฅผ ์ข์ํ์ง๋ง ์ฌ์ ์ค์๋ผ๋ ์์ด๋์ด๋ฅผ ๋ ์ข์ํฉ๋๋ค.
camelCase ํ๊ทธ๋ฅผ ์ฐพ์์ต๋๋ค.
. HTML์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ์ฌ์ฉ ๋์ ์. Vue๋ JavaScript์์ camelCase ID๋ก ์ ์๋ ๊ตฌ์ฑ ์์์ ์๋์ผ๋ก ์ผ์น์ํต๋๋ค.
์ด ๊ฒฝ๊ณ ๋ ๊ตฌ์ฑ ์์ ๋ฑ๋ก์ด ์๋ํ๋ ๋ฐฉ์์ ๋ํด ์ด๋ฏธ ๋งค์ฐ ๊ฐ๊ฒฐํฉ๋๋ค. ๊ทธ๋ ๊ธด ํ์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด ์ผ๋ฐฅ์ ๊ณ์ ์์ฑํ ์ ์๋ ์ต์ ์ด ์๋ ํ HTML์์ camelCase๋ฅผ ํ์ฉํ๋ ๊ฒ์ ํ๋ฅญํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@yyx990803 ๋ค , ๋์ํฉ๋๋ค. ๋ฐ๋ํ ์ ์๋ ์ต๋ํ ๋ง์ ์ฃผ์ฅ์ ์๊ฐํด ๋ณด๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ์์งํ ๋๋ ๊ณ ์งํ ๋งํ ์ฃผ์ฅ์ด ์์ต๋๋ค. ๋น์ ์ด ์ธ๊ธํ๋ฏ์ด, ์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ์คํ์ผ ์ ํ์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค. ๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์๋ก์ด ๊ฒ์ ์ฌ์ฉํ ์ ์๋ ์ต์ ์ด ์๋ ๋์ ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ๊ณ ์ํ ์ ์๋ ํ(๊ทธ๋ฌ๋ ๊ฐ์ ๋ ์๋์ง๋ง) ์ธ๊ธ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค.
kebab-case๊ฐ ์ฌ์ ํ ์๋ํ๊ณ camelCase/PascalCase๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด BC๋ฅผ ์์์ํค์ง ์๋ ์ต์ ์ด๋ผ๋ฉด ์ฌ์ฉํ ๋ ์ถ๊ฐ์ ๋ฐ๋ํ ์ ์์ต๋๋ค. ๋ด๊ฐ ๋ค๋ฅธ ์ผ์ ํ๋๋ก ๊ฐ์ํ๋ ๊ฒ์ ๋ณํ๊ฐ ์๋๋๋ค. ์๋ก์ด ์ต์ ์ผ ๋ฟ์ ๋๋ค.
๋ด๊ฐ ๋งํ๊ฑฐ๋ ์ ์ํ ์ ์๋ ์ ์ผํ ๊ฒ์ ์ด ์ต์ ์ด ์ ๋ฌธ์ํ๋์ด ์๋์ง ํ์ธํ๋ ๊ฒ์ ๋๋ค. ํญ์ Evan์ฒ๋ผ ์ํ์ต๋๋ค!
์ค์ฝง
๊ฒฝ๊ณ ๋๋ ๋ฌด์์ ๊ฐ์ ์ต์
์ ๋ง๋ค ์ ์์ต๋๋ค.
๊ตฌ์ฑ ์์๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. myComponent
html์์ mycompOnent
๋ก ์ธ๊ธํ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ๊ณ ๋ฅผ ์ ํธํฉ๋๋ค.
we found something that would match "myComponent": "mycompOnent" (line 152), use "my-component" instead
๋ฌผ๋ก ์ํ๋ ๋ง์ฐฌ๊ฐ์ง.
์ฒซ ๋ฒ์งธ ์๋์์ ์์
ํ๋ ๊ฒ๋ณด๋ค ๋์ค์ ๊ฐ๋
์ฑ์ด ๋ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๋ํ kebab-case/camelCase ๋ฌธ์ ๋ฅผ ์ฐ์ฐํ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง์ง ๋ฌธ์ ๋ ๋ฌด์์ด ์๋ชป๋์๋์ง ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค ;)
๊ธฐ๋ณธ๊ฐ์ ๊ฒฝ๊ณ ๊ฐ ์๊ณ ์๋๋ง ํ๋ ๊ฒ์ผ ์ ์์ผ๋ฉฐ ์ด๋ ๋์ ๊ด๋ จ์ด ์์ต๋๋ค.
๋ํ ๊ฒฝ๊ณ ๋ ๋๋ฒ๊ทธ ๋ชจ๋์์๋ง ๋ณผ ์ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
atone
vs a-tone
vs at-one
๋ ์ด๋ป์ต๋๊น? ๋๋ ๊ทธ๋ค์ด ์์ฃผ ๋๋ฌธ ๊ฒฝ์ฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@simplesmiler ์ผ๋ฐฅ ์ผ์ด์ค ์ํ์ ์ฌ์ ํ โโ์ด์ ๊ท์น์ ์ฌ์ฉํ์ฌ ๋์๋ฌธ์ ๊ตฌ๋ถ๊ณผ ์ผ์นํฉ๋๋ค.
์ด๊ฒ์ ์น ํ์ค์ ๋ํ ํฌ๋ช
์ฑ์ ์ด์งํ์ง ์์ต๋๋ค. ์ฌ์ฉ์ ์ ์ ์์ ์ฌ์ ์๋ ์ด๋ฆ์ ํ์ดํ์ด ํฌํจ๋์ด์ผ ํ๋ค๊ณ ๋ช
์๋์ด ์์ต๋๋ค. <my-component/>
@simplesmiler ๊ฐ ๋งํ ๊ฒ์ ์ด๋ป์ต๋๊น: addOne
๋ฐ adDone
๋ ๋์ผํ ์ฝ๋๋ฅผ ์คํํฉ๋๋ค. ์ด๊ฒ์ ์ด๋ฒคํธ ๊ตฌํ์ ํนํ ๋ถ์พํ ๊ฒ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ html์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋์๋ฌธ์ ๊ตฌ๋ถ์ ๋ํ ์์ด๋์ด๋ฅผ ๋์ ํ์ง ๋ง์๋ค. ์ด ๊ตฌํ์ html์์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒ๋ง์ ์ด์งํ ๊ฒ์ ๋๋ค. ์ ์๊ฐ์๋ ์ด๋ ๋์ ์๊ฐ์ ๋๋ค.
๋ํ ํ์ผ ์ด๋ฆ์ ํ์ดํ ๊ตฌ๋ถ์ ์ฌ์ฉํฉ๋๋ค. ๊ฑฐ๊ธฐ์์๋ ๊ทธ๊ฒ๋ค์ ์ ๊ฑฐํ๊ณ ์ผ์ด์ฑ์ ์ถ๊ฐํด์ผ ํฉ๋๊น?
๋ง์ง๋ง์ผ๋ก ํ์ดํ๊ณผ ๋์๋ฌธ์ ๊ตฌ๋ถ ์์คํ ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ํ์ ์๋ก์ด ๊ฐ๋ฐ์๋ฅผ ์ํ ๋ค์ํ ์ฝ๋ฉ ์คํ์ผ์ ์ด์งํ ์ ์์ต๋๋ค.
๋๋ @paulpflug ์ ์ ๊ทผ ๋ฐฉ์์ ์ ํธํฉ๋๋ค. ์ด ์์ญ์ ๋ํ ์ ์ ํ ๊ฒฝ๊ณ ๋ ๋ง์ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๋๋ HTML Pascal/Camel ์ผ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ์น ํ์ค์ ๊นจ๊ณ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ฐ์ฅ ์์ ๋ถ๋ถ์ ์ผ๊ด์ฑ ์๊ฒ ๋ง๋ค๋ ค๊ณ ํ๋ฉด ๋ณต์ก์ฑ์ ๋ ๋ค๋ฅธ ๊ณ์ธต์ด ์ถ๊ฐ๋ฉ๋๋ค. ๋ํ ๋์ ์ต๊ด์ ์ ๋ฐํ ์๋ ์์ต๋๋ค. ์ธ์ ๊ฐ๋ Vue๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ณณ์์ ์์ ํด์ผ ํ๋ฏ๋ก HTML์ด ๋ค๋ฅด๊ฒ ๊ตฌ๋ฌธ ๋ถ์๋๋ ์ด์ ๋ฅผ ์ดํดํ์ง ๋ชปํ ์ ์์ผ๋ฏ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ค์ ์ ์งํ๊ณ ๊ฐ๋ฐ์๋ฅผ ์ค๋ํ์ง ์๋๋ก ํด์ผ ํฉ๋๋ค.
@paulpflug ์ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ๋ฉด ํ๋ก๋์ ์ฝ๋์ ๋ํ ์์ ์ด ์ค์ด๋ค๊ณ ๊ฐ๋ฐ์๊ฐ ๋ค์ ์ฌ๋ฐ๋ฅธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ๊ตฌํ๋์ด์๋ ์ ๋๋ ์ด์ ์ ๋ํ ์ข์ ์ฃผ์ฅ ์ฌ๋ก: http://eisenbergeffect.bluespire.com/on-angular-2-and-html/
์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋๋ค์ด Angular 2๋ฅผ ์ซ์ดํ๋ ์ฃผ์ ์ด์ ์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ค์ ์ค์ํ๋๋ก ์ ์งํ๋ ๋ฐ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ํ๋ HTML์ด ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๋๋ก ์ด์์ ์์ฑํ์ผ๋ฉฐ ๋๋ฌด ๋ง์ ๋ฌธ์ ์ ๋๋ฌด ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ ์ํฉ ๋๋ฌธ์ ํ๊ธฐ๋์์ต๋๋ค.
@jamesxv7 ๊ทธ ์๊ฒฌ์ ๊ทธ๊ฒ์ ๊ฝค ์ ์์ฝํฉ๋๋ค. Evan์ HTML ์ฌ์ ๋ณ๊ฒฝ์ ์ ์ํ์ง ์๊ณ Vue๊ฐ ๊ตฌ์ฑ ์์ ์ด๋ฆ์ ์ฐพ๋ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ ๊ฒ์ ์ ์ํฉ๋๋ค. ์ผ๋ฐฅ์ ๋ํ๋ก ๋ณํํ๊ณ ์ผ์นํ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฐพ๋ ๋์ (์ผ๋ฐฅ์ ์์ฉํ๊ธฐ ์ํด) ๋์๋ฅผ ์ ๊ฑฐํ ๋ค์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ๊ตฌ์ฑ ์์๋ฅผ ๊ฒ์ํฉ๋๋ค. HTML ์์ฒด๋ ๊ณ์ ์ฌ์์ ์ค์ํฉ๋๋ค. ๋ํ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋์๊ฒ ์ฌ์ ํ๊ฑฐ๋ ๋์ ์ ํ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค :)
@yyx990803 <MyComponent>
์คํ์ผ์ ์น๊ฒฉ๋ ์คํ์ผ๋ก ๊ณํํ์๊ฒ ์ต๋๊น(์: ๋ฌธ์ ๋ฐ ์์ ๋ ์ด๋ ๊ฒ ์์ฑ๋ ์์ ์
๋๋ค), ์๋๋ฉด ๊ทธ๋ฅ ์ต์
์ด ๋ ๊ฒ์ด๋ฉฐ ์ผ๋ฐฅ ์ผ์ด์ค ์คํ์ผ์ด ๊ธฐ๋ณธ ์คํ์ผ๋ก ๋จ์ ๊ฒ์
๋๊น?
@blake-newman ์ด ์ฃผ์ ์ ์ฝ์ผ์ญ์์ค - ํ์ค์ ์ค์ํฉ๋๋ค :)
@paulpflug @guidobouman : vue-loader
๋๋ vueify
์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ camelCase ํ๊ทธ ๋ฐ ์์ฑ์ ๋ํ ๊ฒฝ๊ณ ๊ฐ ์ด๋ฏธ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฐํ์ ์ HTML ํ์ ๋์์ผ๋ก ์ธํด ์ผ์ด์ค ์ ๋ณด๊ฐ ์ด๋ฏธ ์์ค๋์์ ์ ์์ผ๋ฏ๋ก camelCase ๊ฒ์ฌ๋ ์ปดํ์ผ ์ ์ํํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ vue-loader
๋๋ vueify
์์ด Vue๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๊ฐ ํ์๋์ง ์์ต๋๋ค.
@yyx990803 - ๊ทธ๋ฌ๋ ์น ๊ตฌ์ฑ ์์์ ๋ํด ๋งํฌ๋ @blake-newman ์ฌ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ช ์๋์ด ์์ต๋๋ค.
์ฌ์ฉ์ ์ ์ ์์ ์ ํ์ ์ฌ์ฉ์ ์ ์ ์์ ์ธํฐํ์ด์ค๋ฅผ ์๋ณํ๊ณ NCName ์์ฑ๊ณผ ์ผ์นํด์ผ ํ๋ ์ผ๋ จ์ ๋ฌธ์์ด๋ฉฐ _U+002D HYPHEN-MINUS ๋ฌธ์๋ฅผ ํฌํจํด์ผ ํ๊ณ _๋๋ฌธ์ ASCII ๋ฌธ์๋ฅผ ํฌํจํด์๋ ์ ๋ฉ๋๋ค_.
๊ทธ๊ฒ์ด Vue ๊ตฌ์ฑ ์์์ ์ด๋ป๊ฒ ๊ด๋ จ๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ฌธ์์์๋ ์น ๊ตฌ์ฑ ์์ ํ์ค์ ๋์จํ๊ฒ ๋ฐ๋ฅด๋ ค๊ณ ํฉ๋๋ค.
Vue.js ๊ตฌ์ฑ ์์๋ ์น ๊ตฌ์ฑ ์์ ์ฌ์์ ์ผ๋ถ์ธ ์ฌ์ฉ์ ์ง์ ์์์ ๋งค์ฐ ์ ์ฌํ๋ค๋ ๊ฒ์ ๋์น์ฑ์ จ์ ๊ฒ์ ๋๋ค. ์ค์ ๋ก Vue.js์ ๊ตฌ์ฑ ์์ ๊ตฌ๋ฌธ์ ์ฌ์์ ๋ฐ๋ผ ๋์จํ๊ฒ ๋ชจ๋ธ๋ง๋ฉ๋๋ค.
๊ทธ๋์ ๋๋ camelCase์ PascalCase๋ฅผ ํ์ฉํ๊ธฐ ์ํด ๋จผ์ ์ฌ์์ ๋ณ๊ฒฝํด์ผ ํ๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
์ค์ฝง
@smolinari the Vue ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด '์๊ฒฉํ๊ฒ'๊ฐ ์๋๋ผ '๋์จํ๊ฒ ๋ชจ๋ธ๋ง'๋์์ผ๋ฉฐ ๋ด ์๊ฐ์๋ ์ด ๋ณ๊ฒฝ์ ์ฌ์ง๊ฐ ๋จ์ ์์ต๋๋ค.
@yyx990803 ์ฌ๋ก ์ ๋ณด๊ฐ ์์ค๋ ์ ์์ง๋ง ์ฌ์ ํ ๊ฒฝ๊ณ ๊ฐ ์์ ์ ์์ต๋๋ค.
ํ
ํ๋ฆฟ์ 'mycOmponent'๋ฅผ ์์ฑํ๋ฉด mycomponent
๋ก ๊ตฌ๋ฌธ ๋ถ์๋์ง๋ง ์์๋๋ ๊ฐ์ my-component
์ด๋ฉด Vue(๋๋ฒ๊ทธ ๋ชจ๋์์)๋ my-component
mycomponent
๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค. my-component
๋ฐ ์๋ชป๋ ์ฌ์ฉ๋ฒ์ ๋ํด ๊ฒฝ๊ณ ํฉ๋๋ค. ๋ถ์ค ์ฌ๋ก ์ ๋ณด๋ ์ฌ๊ธฐ์ ์ค์ํ์ง ์์ต๋๋ค.
๊ฒฝ๊ณ ๋ฅผ ํ์ํ์ง ์๊ณ ๋์ ์ง์ ์ผ์น์ํค๋ ์ต์
์ด ์์ ์ ์์ต๋๋ค(์ ์๋ ๋์๊ณผ ๋์ผ).
-1 camelCase/PascalCase๋ก ๋ง์ด๊ทธ๋ ์ด์
ํฉ๋๋ค. 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์ด ๋ค๋ฅธ ๊ธฐ์ ์ด๊ณ ๋ค๋ฅธ ์ด๋ฆ ์ง์ ์์คํ
์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์กด์ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๊ธฐ์ ๋ชจ๋์์ ๋์ผํ ๊ฒฝ์ฐ(์ผ๋ฐฅ ๋๋ ๋ํ)๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ํ ์ ์ด ํ ๊ณณ์์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ์ง๋ง ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ ๊ณ์๋ ๊ฒ์
๋๋ค .
๊ทธ๋์ ์ ๋ ์ฐ๋ฆฌ๊ฐ ํ ์ ์๋ ์ต์ ์ ๋คํด ์ ์ ๊ธ๋๋ค๊ณ ๋ฏฟ์ต๋๋ค. ํ์ฌ ๋ผ์ธ i,e. html ์ปจํ
์คํธ์ ์ผ๋ฐฅ ์ผ์ด์ค์ js ์ปจํ
์คํธ์ camleCase(๋ฐ PascalCase)๋ ๋งค์ฐ ์ข์ต๋๋ค .
๊ทธ๋์ IMO, ์ฐ๋ฆฌ๋ ๋ ๋์ ๊ฒ์ ์ฐพ๋ ๋์ ํ์ฌ์ ๊ท์ฝ์ ์ง์ํด์ผ ํฉ๋๋ค. ๋ฌผ๋ก ์ด๋ณด์๋ฅผ ๋๊ธฐ ์ํด ๊ฒฝ๊ณ ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
@prog-rajkamal ์, ์ด์ ๊ฒฝ๊ณ ๋ฅผ ๊ตฌํํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
๋๋ ์ด์ ๊ฒฝ๊ณ ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ํฌํํฉ๋๋ค:+1:.
์ค์ฝง
:+1: ๊ฒฝ๊ณ ์ถ๊ฐ
:+1: ๊ฒฝ๊ณ ์๋
ccf9bede6bc39fb62e43e1efe98136c5f35dae6b & d7b55c4ee8491dbd853e28a1527050d2d1e7deab
๊ฒฝ๊ณ ๋ ์ข์ ๊ฒ์ ๋๋ค. ๋ด ์ฌ์ฉ์ ์ง์ ์ด๋ฒคํธ๊ฐ ์๋ตํ์ง ์์ ์ด์ ๋ฅผ ํ์ ํ๋ ๋ฐ ํ ์๊ฐ์ ๋ณด๋์ต๋๋ค.
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๋ถ์ ํ๋นํ์ต๋๋ค...
๋ฉ๋ชจ๋ฆฌ์ ์ปค๋ฐํ๋ ํ ๊ฐ์ง ๊ท์น: HTML = kebab-case, JavaScript = camelCase
HTML์ ์์ฑ๊ณผ ํ๊ทธ๋ฅผ ์๋ฏธํฉ๋๋ค. v-bind
๋ฅผ ์ฌ์ฉํ ๋ ์์ฑ ๊ฐ์ JavaScript ํํ์์ด๋ฏ๋ก ๋ ๋ฒ์งธ ๋ฌธ์ด ์ ์ฉ๋ฉ๋๋ค.
๋ด ์ง๋ฌธ์ Vue๊ฐ ์ฐ๋ฆฌ๋ฅผ ์ํด ๋ณํํ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? vue ํ์ผ์์ ์ผ๋ฐฅ ์ผ์ด์ค๋ฅผ ๊ธฐ์ตํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด์ฌ์ ์ ์ฅ์์๋ ๋ ์ด์ํด ์ง๋๋ค.. ๊ทธ๊ฑธ ์ํด ์ง๋ 20๋ถ์ ํ๋นํ์ต๋๋ค...
๋ด๊ฐ ๋ฐฉ๊ธ ๊ตฌ๊ธ๋งํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ง๋ 1.5์๊ฐ์ ๋ญ๋นํ์ต๋๋ค... dxmn
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฉ๋ชจ๋ฆฌ์ ์ปค๋ฐํ๋ ํ ๊ฐ์ง ๊ท์น:
HTML = kebab-case, JavaScript = camelCase
HTML์ ์์ฑ๊ณผ ํ๊ทธ๋ฅผ ์๋ฏธํฉ๋๋ค.
v-bind
๋ฅผ ์ฌ์ฉํ ๋ ์์ฑ ๊ฐ์ JavaScript ํํ์์ด๋ฏ๋ก ๋ ๋ฒ์งธ ๋ฌธ์ด ์ ์ฉ๋ฉ๋๋ค.