Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- typescript
- 타입스크립트
- 2022
- returnType
- react
- 성능최적화
- 타입좁히기
- 커스텀
- 반복줄이기
- 리액트
- CSS
- click and drag
- 레이아웃쪼개기
- 공통컴포넌트
- Chart.js
- utilty type
- 개발콘텐츠
- 티스토리꾸미기
- React Native
- 제네릭
- React.js
- javascript
- const 단언문
- vue.js
- 누구나 자료구조와 알고리즘
- 폰트적용하기
- TSDoc
- JS console
- reactjs
- NonNullable
Archives
- Today
- Total
몽땅뚝딱 개발자
[Vue.js] json 파일 읽어오기 본문
기본값이나 전영역의 컴포넌트, 페이지에서 공통적으로 사용하는 값일 경우 json 파일에서 불러왔다.
예를 들어 상품의 상세페이지 구현 시, 상품유형코드(ex. 'N', 'O')에 따라 단어(ex. '니트', '아우터')만 달리 출력하는 것이다.
당시 lodash도, Vue.js도, ES6 문법도 처음 사용했던 나는 json 파일과 _.filter()를 사용하여 알아서 착착 뿌려지는 값들을 보며 '정말..! 편리하다..! vue...! 정말 개발 친화적이다......!'하고 놀라고 즐거워했던 기억이 난다.
이 방식의 개인적인 장점은 공통파일에 한번에 모아놓으니 한번에 파악하기도 쉽고, 값을 변경할 때도 따로 API를 건드는 일 없이 json만 수정하면 됐기때문에 유지보수하기도 편하다는 것이다.
json 파일 설정과 import
// assets/category.json
[
{
"name": "푸드",
"image_url": "https://image-server.kr/def/cate-1.jpg",
"code": "CATE_01"
},
{
"name": "음료",
"image_url": "https://image-server.kr/def/cate-2.jpg",
"code": "CATE_02"
},
{
"name": "상품",
"image_url": "https://image-server.kr/def/cate-3.jpg",
"code": "CATE_03"
},
{
"name": "고객센터",
"image_url": "https://image-server.kr/def/cate-4.jpg",
"code": "CATE_04"
}
]
// component.vue
// script 영역에서 import 해준다.
// 경로에 있는 '@'의 경우 jsconfig.json에 ./src/* 경로의 경우 @로 표기하도록 설정한 것이다.
<script>
import category from "@/assets/category.json";
...
</script>
읽어오는 방법
◽ computed() 사용하기
// component.vue
import category from "@/assets/category.json";
// computed()에서 바로 가져와 categorys에 바로 할당한다.
computed: {
categorys() {
return category.map((items) => {
return items;
});
},
},
◽ data에 바로 바인딩
// component.vue
import category from "@/assets/category.json";
// 1.
data() {
return {
categorys: category
}
}
// 2. 화살표를 사용하는 경우의 표현
data: () => {
categorys: category
}
화면에 출력하기
<li class="prod" v-for="item in categorys" :key="item.code">
<div class="category_img" :id="item.code">
<img :src="item.image_url" />
<p>{{ item.name }}</p>
</div>
</li>
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'Development > Vue.js' 카테고리의 다른 글
[Vue.js] 체크박스 선택 시 효과주기 (0) | 2021.11.27 |
---|---|
[Vue.js] checkbox, radio, select 값 가져오기 / 기본값 설정 (0) | 2021.11.17 |
[Vue.js] Local Storage로 입력정보 유지 (1) | 2021.11.13 |
[Vue.js] v-model로 한글입력값 binding 시 타이밍 맞추기 (0) | 2021.11.11 |
[Vue.js] Vue의 라이프사이클 (0) | 2021.11.09 |
Comments