자세한 이유는, 아래 URL을 참고한다.
https://pablohpsilva.github.io/vuejs-component-style-guide/#/korean
필요하다면 컴포넌트 만들기
컴포넌트가 너무 크다면, 사용 및 유지보수가 어려울 수 있습니다.
컴포넌트가 너무 작다면, 프로젝트가 너무 커지고 컴포넌트간 통신이 어려울 수 있습니다.
확실하지 않다면 만들지마세요! “나중에 쓸모있는 컴포넌트”로 프로젝트를 오염시키지 마십시오. 그 컴포넌트는 영원히 사용하지 않을 수도 있습니다. 프로젝트의 컴포넌트와의 호환성의 복잡성을 피하기 위해 필요할 때 컴포넌트를 만드는게 좋습니다
컴포넌트 이름 1 2 3 4 5 6 7 8 9 <!-- 권장합니다 --> <app-header></app-header> <user-list></user-list> <range-slider></range-slider> <!-- 피하세요! --> <btn-group></btn-group> <!-- 짧지만 발음할 수 없습니다. `button-group`으로 사용하는 것이 좋습니다. --> <ui-slider></ui-slider> <!-- 모든 컴포넌트는 UI 엘리먼트이기 때문에 의미가 없습니다. --> <slider></slider> <!-- 사용자 정의 엘리먼트 스펙을 준수하지 않았습니다. -->
컴포넌트 props를 원시 자료형으로 사용하기 1 2 3 4 5 6 7 8 9 10 11 12 <!-- 권장합니다 --> <range-slider :values="[10, 20]" min="0" max="100" step="5" :on-slide="updateInputs" :on-end="updateResults"> </range-slider> <!-- 피하세요! --> <range-slider :config="complexConfigObject"></range-slider>
props 활용!
props에 기본 값을 사용하세요.
값을 validate 하기위해 type
옵션을 사용하세요.
중복된 props
가 있는지 확인하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <template> <input type="range" v-model="value" :max="max" :min="min"> </template> <script type="text/javascript"> export default { props: { max: { type: Number, // [1*] 'max' prop은 Number로만 사용할 수 있습니다. default() { return 10; }, }, min: { type: Number, default() { return 0; }, }, value: { type: Number, default() { return 4; }, }, }, }; </script>
컴포넌트 구조의 활용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <template lang="html"> <div class="Ranger__Wrapper"> <!-- ... --> </div> </template> <script type="text/javascript"> export default { // 이름 적는 것을 잊지마세요 name: 'RangeSlider', // compose new components extends: {}, // 컴포넌트 어트리뷰트 그룹 props: { bar: {}, // 알파벳순으로 정렬합니다 foo: {}, fooBar: {}, }, // 컴포넌트 변수 그룹 data() {}, computed: {}, // 컴포넌트가 다른 컴포넌트를 사용할 경우 components: {}, // 컴포넌트 메서드 그룹 watch: {}, methods: {}, // 컴포넌트 라이프사이클 메서드 그룹 beforeCreate() {}, mounted() {}, }; </script> <style scoped> .Ranger__Wrapper { /* ... */ } </style>
Reference https://pablohpsilva.github.io/vuejs-component-style-guide/#/korean
Comment and share