방명록
- [개발자의품격][부트캠프][1기][19차시] Vue.js #6 | 재사용 컴퍼넌트에 부트스트랩 적용2022년 03월 07일 22시 59분 51초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
부트스트랩 설치
- 터미널에서 프로젝트 폴더로 이동후 2, 3번 설치
- npm install bootstrap
- npm install @popperjs/core
- main.js 파일에 5, 6번 import
- import 'bootstrap/dist/css/bootstrap.min.css'
- import 'bootstrap/dist/js/bootstrap.js'
※ 외부 라이브러리는 main.js에 import 해야 사용할 수 있다.
부모 component
<!-- src/views/4_reuse/ListView.vue --> <template> <div> <button class="btn btn-danger" @click="doSearch">조회</button> <!-- simple-grid를 입력하면 import SimpleGrid from '@/components/fragments/SimpleGrid.vue'와 components에 SimpleGrid를 자동으로 만들어 준다. --> <simple-grid :headers="headers" :items="drinkList" /> </div> </template> <script> // @를 사용하면 vue파일 경로가 변경되더라도 에러가 발생하지 않는다. import SimpleGrid from '@/components/fragments/SimpleGrid.vue' export default { components: { SimpleGrid }, data() { return { // SimpleGrid.vue에 thead 정보를 전달 headers: [ { title: '제품번호', key: 'drinkId' }, { title: '제품명', key: 'drinkName' }, { title: '가격', key: 'price' } ], drinkList: [] } }, methods: { doSearch() { // SimpleGrid.vue에 tbody 정보를 전달 this.drinkList = [ { drinkId: '1', drinkName: '코카콜라', price: 700, qty: 1 }, { drinkId: '2', drinkName: '오렌지주스', price: 1200, qty: 1 }, { drinkId: '3', drinkName: '커피', price: 500, qty: 1 }, { drinkId: '4', drinkName: '물', price: 700, qty: 1 }, { drinkId: '5', drinkName: '보리차', price: 1200, qty: 1 }, { drinkId: '6', drinkName: '포카리', price: 1000, qty: 1 }, { drinkId: '7', drinkName: '뽀로로', price: 1300, qty: 1 } ] } } } </script>
자식 component
<!-- src/components/fragments/SimpleGrid.vue --> <template> <table class="table table-bordered"> <!-- 부모 component로 부터 headers 배열 데이터 받아와 thead 그리기 --> <thead> <tr> <th :key="th.key" v-for="th in headers">{{ th.title }}</th> </tr> </thead> <!-- 부모 component로 부터 items 배열 데이터 받아와 tbody 그리기 --> <tbody> <tr :key="i" v-for="(item, i) in items"> <td :key="th.key" v-for="th in headers">{{ item[th.key] }}</td> </tr> </tbody> </table> </template> <script> export default { components: {}, // props에서 부모 component로 부터 데이터를 받는다. props: { headers: { type: Array, default: function () { return [] } }, items: { type: Array, default: function () { return [] } } } } </script>
프로젝트를 거듭 진행하면서 component가 자산으로 축적된다. component를 많이 가지고 있으면 신규 프로젝트 시 개발 생산성을 극대화할 수 있다.
728x90반응형'영광의 시대! > 2022 개발자의 품격 부트캠프 1기' 카테고리의 다른 글
[개발자의품격][부트캠프][1기][20차시][21차시] Vue.js #8 | Lifecycle Hooks (0) 2022.03.11 [개발자의품격][부트캠프][1기][20차시] Vue.js #7 | 재사용 컴퍼넌트에 checkbox, radio button, custom event 적용 등 (0) 2022.03.10 [개발자의품격][부트캠프][1기][19차시] Vue.js #5 | 재사용 콤퍼넌트 (0) 2022.03.07 [개발자의품격][부트캠프][1기][19차시] Vue.js #4 | extra (0) 2022.03.07 [개발자의품격][부트캠프][1기][19차시] Vue.js #3 | event (0) 2022.03.07 다음글이 없습니다.이전글이 없습니다.댓글