개발자에게 코드는 얼굴이다!
루트 컴포넌트인 app과
<transition>
,<compoenent>
등 Vue에서 제공되는 빌트인 컴포넌트를 제외하고 컴포넌트의 이름은 항상 합성어를 사용해야 합니다. (html 엘리먼트와의 충돌방지)
Vue.component('todo',{
//...
})
export default {
name: 'Todo',
/...
}
Vue.component('todo-item',{
//...
})
export default {
name: 'TodoItem',
/...
}
컴포넌트(
new Vue
를 제외한 모든곳)의data
프로퍼티의 값은 반드시 객체를 반환하는 함수여야합니다.
Vue.component('some-comp',{
data:{
foo:'bar'
}
})
.export default {
data:{
foo:'bar'
}
}
Vue.component('some-comp',{
data: function() {
return {
foo:'bar'
}
}
})
export default {
data() {
return {
foo:'bar'
}
}
}
prop 정의는 적어도 타입은 명시되도록 가능한 상세하게 정의되어야 합니다.
props:['status']
props:{
status:String
}
props: {
status: {
type: String,
required: true,
validator: function (value) {
return [
'syncing',
'synced',
'version-conflict',
'error'
].indexOf(value) !== -1
}
}
}
v-for
에 key
지정필수!
<ul>
<li
v-for="todo in todos"
:key="todo.id"
>
{{ todo.text }}
</li>
</ul>
v-if
와 v-for
를 동시에 사용하지 마세요v-for="user in users" v-if="user.isActive"
) -> 이런 경우 users의 새로운 computed 속성으로 필터링된 목록을 만드세요v-for="user in users v-if="shouldShowUser
) -> 이 경우 v-if
를 컨테이너 엘리먼트로 옮기세요플러그인, mixin 등에서 커스텀 사용자 private 프로터피에는 항상 접두사 $_를 사용하라. 그 다음 다른 사람의 코드와 충돌을 피하려면 named scope를 포함하라. (e.g.
$_yourPluginName_
).