export 와 import
커다란 데이터 set을 가져다 쓰거나 너무 긴 자바스크립트를 가져다 써야할 때 한 페이지에서 선언하는 것 보다 선언되어있는 파일을 가져다 쓰는 것이 효율적임
언제 사용하는가 ? : export 내보낼 때, import 파일을 읽어올 때
왜 사용하는가? : 코드를 효율적으로 작성 및 사용하기 위해
어떻게 사용하는가? : 내보낼 파일에서 export로 내보내고 읽어올 파일은 import를 통해 읽어들임


그렇다면 여러 변수를 내보내는 방법은?


그럼 데이터 뭉치를 실제로 가져다 사용한다면?
// export로 내보냄
export default [
{
id: 0,
title: "Sinrim station 30 meters away",
image: "https://codingapple1.github.io/vue/room0.jpg",
content: "18년 신축공사한 남향 원룸 ☀️, 공기청정기 제공",
price: 340000,
},
{
id: 1,
title: "Changdong Aurora Bedroom(Queen-size)",
image: "https://codingapple1.github.io/vue/room1.jpg",
content: "침실만 따로 있는 공용 셰어하우스입니다. 최대 2인 가능",
price: 450000,
},
{
id: 2,
title: "Geumsan Apartment Flat",
image: "https://codingapple1.github.io/vue/room2.jpg",
content: "금산오거리 역세권 아파트입니다. 애완동물 불가능 ?",
price: 780000,
},
{
id: 3,
title: "Double styled beds Studio Apt",
image: "https://codingapple1.github.io/vue/room3.jpg",
content: "무암동인근 2인용 원룸입니다. 전세 전환가능",
price: 550000,
},
{
id: 4,
title: "MyeongIl Apartment flat",
image: "https://codingapple1.github.io/vue/room4.jpg",
content: "탄천동 아파트 월세, 남향, 역 5분거리, 허위매물아님",
price: 680000,
},
{
id: 5,
title: "Banziha One Room",
image: "https://codingapple1.github.io/vue/room5.jpg",
content: "반지하 원룸입니다. 비올 때 물가끔 새는거 빼면 좋아요",
price: 370000,
},
];
위처럼 데이터 파일을 내보내고
<template>
<div class="black-bg" v-if="onOff == true">
<!-- v-if는 참일 때만 보여줌-->
<div class="white-bg">
<h4>상세 페이지임</h4>
<p>상세 페이지 내용임</p>
<br />
<button @click="onOff = false">닫기</button>
</div>
</div>
<div>
<div class="menu">
<a v-for="Page in menus" :key="Page">{{ Page }}</a>
</div>
<div>
<img :src="oneRooms[0].image" class="room-img" />
<h4>{{ oneRooms[0].title }}</h4>
<p>{{ oneRooms[0].price }}원</p>
<br />
<hr />
</div>
<div>
<img :src="oneRooms[1].image" class="room-img" />
<h4>{{ oneRooms[1].title }}</h4>
<p>{{ oneRooms[1].price }}원</p>
<br />
<hr />
</div>
<div>
<img :src="oneRooms[2].image" class="room-img" />
<h4>{{ oneRooms[2].title }}</h4>
<p>{{ oneRooms[2].price }}원</p>
<br />
<hr />
</div>
<div>
<img :src="oneRooms[3].image" class="room-img" />
<h4>{{ oneRooms[3].title }}</h4>
<p>{{ oneRooms[3].price }}원</p>
<br />
<hr />
</div>
<div>
<img :src="oneRooms[4].image" class="room-img" />
<h4>{{ oneRooms[4].title }}</h4>
<p>{{ oneRooms[4].price }}원</p>
<br />
<hr />
</div>
</div>
</template>
<script>
import data from "./components/oneroom.js";
export default {
name: "App",
data() {
return {
oneRooms: data,
onOff: false,
menus: ["Home", "Shop", "About"], // 메뉴 항목
report: [0, 0, 0],
product: ["1번 원룸", "2번 원룸", "3번 원룸"],
price: ["60", "70", "80"],
styleArray: ["color : red", "color : blue", "color : green"],
};
},
methods: {
increaseMethod() {
this.report[1]++;
},
}, // 함수 선언 및 이용
components: {},
};
</script>
<style>
body {
margin: 0;
}
div {
box-sizing: border-box;
}
.black-bg {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
position: fixed;
padding: 20px;
}
.white-bg {
width: 100%;
background: white;
border-radius: 8%;
padding: 20px;
}
.room-img {
width: 100%;
margin-top: 40px;
}
#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;
}
.menu {
background: darkslateblue;
padding: 15px;
border-radius: 5px;
}
.menu a {
color: white;
padding: 10px;
}
</style>
이렇게 읽어올 수 있는데 우리는 저번에 반복문을 통해 코드를 획기적으로 줄이는 방법을 확인하였으므로,
<template>
<div class="black-bg" v-if="onOff == true">
<!-- v-if는 참일 때만 보여줌 -->
<div class="white-bg">
<h4>상세 페이지임</h4>
<p>상세 페이지 내용임</p>
<br />
<button @click="onOff = false">닫기</button>
</div>
</div>
<div>
<div class="menu">
<a v-for="Page in menus" :key="Page">{{ Page }}</a>
</div>
<!-- oneRooms를 반복문으로 처리 -->
<div v-for="room in oneRooms" :key="room.id">
<img :src="room.image" class="room-img" />
<h4>{{ room.title }}</h4>
<p>{{ room.price }}원</p>
<p>{{ room.content }}</p>
<!-- 추가 내용 표시 -->
<br />
<hr />
</div>
</div>
</template>
<script>
import data from "./components/oneroom.js";
export default {
name: "App",
data() {
return {
oneRooms: data, // 데이터를 가져옴
onOff: false,
menus: ["Home", "Shop", "About"], // 메뉴 항목
};
},
};
</script>
<style>
body {
margin: 0;
}
div {
box-sizing: border-box;
}
.black-bg {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
position: fixed;
padding: 20px;
}
.white-bg {
width: 100%;
background: white;
border-radius: 8%;
padding: 20px;
}
.room-img {
width: 100%;
margin-top: 40px;
}
#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;
}
.menu {
background: darkslateblue;
padding: 15px;
border-radius: 5px;
}
.menu a {
color: white;
padding: 10px;
}
</style>
거의 30줄 가량 그리고 추후 데이터가 추가되더라도 반복적으로 생산할 수 있는 코드를 작성할 수 있음\
해당 코드를 뷰를 실행 시킨 후 화면으로 본다면

'VUE 공부' 카테고리의 다른 글
| 소규모 Project 제작 -1 (1) | 2024.11.26 |
|---|---|
| VUE 공부 5일차 (1) | 2024.11.19 |
| VUE 공부 3일차 (0) | 2024.11.18 |
| VUE 공부 2일차 (2) | 2024.11.15 |
| VUE 공부 1일차 (1) | 2024.11.14 |