[Vue CLI] props_작성중
2021. 5. 2. 22:20ㆍ프론트엔드/Vue.js
728x90
props 대소문자 구분
HTML속성은 대소문자를 구별하지 않고 모든 대문자를 소문자로 인식하므로 Vue에서 HTML을 표현 할 때 보통 kebab-case(하이픈으로 표기)로 표현하고 javascript에서 prop을 받아 사용할 때는 camelCase(단어시작시대문자로표기)로 사용.
-HTML에서 prop을 사용할 때 대소문자 구분
<template>
<div id="app">
<!--[html] kebab-case 사용(O) -->
<!--[html] kebab-case 사용(O) 단, 문자열("")은 제외 -->
<props-ex-test v-bind:child-data="sendChildData"></props-ex-test>
<!--[html] camelCase 사용(X) -->
<props-ex-test v-bind:childData="sendChildData"></props-ex-test>
</div>
</template>
-script에서 prop을 사용할 때 대소문자 구분
<template>
<div>
<!--[script] camelCase표기 (O) -->
<h1>{{childData}}</h1>
<!--[script] kebab-case표기 (X) -->
<h1>{{child-data}}</h1>
</div>
</template>
<script>
export default {
//[script] camelCase표기 (O)
props: ["childData"]
//[script] kebab-case표기 (X)
props: ["childData"]
};
props 타입 테크와 유효성 검사
문자열 배열 형태로 구현
props: ["childData"]
유효성,타입 체크 등 오브젝트로 선언하여 구현
props: {
childData:{
type: String, //String,Number,... 타입체크
required: true, //필수값 체크
default: "defaultData" //props에 데이터 정의가 안된 경우 기본 정의될 데이터
}
}
예시..
App.vue
<template>
<div id="app">
<props-ex-test v-bind:childData="sendChildData"></props-ex-test>
</div>
</template>
<script>
import PropsExTest from "./components/PropsExTest.vue";
export default {
data: function() {
return {
sendChildData: "sendChildData"
};
},
components: {
"props-ex-test": PropsExTest
}
};
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
PropsExTest.vue
<template>
<div>
<h1>{{childData}}</h1>
</div>
</template>
<script>
export default {
props: ["childData"]
};
</script>
<style>
</style>
참고 : 캡틴판교 님 인프런 강의
728x90
'프론트엔드 > Vue.js' 카테고리의 다른 글
[Vuejs] 화살표 함수사용의 편리성 (0) | 2021.05.22 |
---|---|
[Vuejs] Vue-CLI 프로젝트 생성 (0) | 2021.05.22 |
[Vuejs] 체크박스 한개만 체크 되도록 구현 (0) | 2021.05.22 |
[Vuejs] methods/ computed/ whatch (0) | 2021.05.12 |
[Vue.js] VueCLI 프로젝트 구성_작성중 (0) | 2021.05.02 |