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 |
Tags
- typescript
- reactjs
- 리액트
- 타입스크립트
- returnType
- 폰트적용하기
- JS console
- utilty type
- 티스토리꾸미기
- react
- const 단언문
- click and drag
- 커스텀
- 누구나 자료구조와 알고리즘
- 성능최적화
- NonNullable
- 제네릭
- 레이아웃쪼개기
- CSS
- 개발콘텐츠
- 2022
- React Native
- React.js
- 반복줄이기
- vue.js
- 공통컴포넌트
- Chart.js
- 타입좁히기
- TSDoc
- javascript
Archives
- Today
- Total
몽땅뚝딱 개발자
[Vue.js] filter 사용하기 본문
각종 데이터의 포맷을 변경하기 위해 computed를 쓸 수도 있지만 한 번도 만들어보지 않은 filter를 사용하기로 했다.
날짜포맷 예제를 만들기 위해 Date 자료형을 simpleDateFormat을 사용하여 'yyyy-MM-dd' 형태로 바꾸려고했는데..
자바스크립트는.. simpleDateFormat이 없네..
그래서 다른 사람들은 어떻게 쓰나 찾아보니 moment.js를 많이 사용한다고 한다.
난... 어차피 예제용이라 그냥 하나씩 변경해주었다.
◽ 컴포넌트 옵션에서 사용하기
📄 HTML
mustache 표현 안에 '|'(=파이프)를 사용하면 된다.
<template>
<div>{{ date | dateFormatFilter }}</div>
</template>
📄 Script
export default {
data() {
return {
date: new Date()
};
},
filters: {
dateFormatFilter(value) {
let year = value.getFullYear()
let month = (value.getMonth()+1).toString().padStart(2, '0')
let date = value.getDate().toString().padStart(2, '0')
let hour = value.getHours().toString().padStart(2, '0')
let minute = value.getHours().toString().padStart(2, '0')
let seconds = value.getHours().toString().padStart(2, '0')
let dateArr = [year, month, date]
let timeArr = [hour, minute, seconds]
return dateArr.join('-') + " " + timeArr.join(':')
},
}
};
◽ 전역으로 사용하기
📄 HTML
<template>
<div>{{ date | globalDateFormatFilter }}</div>
</template>
📄 Script
먼저 main.js에 filter를 import 해준다. (import './filters')
그리고 아래와 같이 js 파일을 만든다.
import Vue from "vue";
Vue.filter("globalDateFormatFilter", (value) => {
let year = value.getFullYear();
let month = (value.getMonth() + 1).toString().padStart(2, "0");
let date = value.getDate().toString().padStart(2, "0");
let hour = value.getHours().toString().padStart(2, "0");
let minute = value.getMinutes().toString().padStart(2, "0");
let seconds = value.getSeconds().toString().padStart(2, "0");
let dateArr = [year, month, date];
let timeArr = [hour, minute, seconds];
return dateArr.join("-") + " " + timeArr.join(":");
});
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'Development > Vue.js' 카테고리의 다른 글
모킹 모듈(mocking module) 사용하기 / axios-mock-adapter-path-params (0) | 2022.03.25 |
---|---|
[Vue.js] mac에서 node 버전 변경 / nvm (0) | 2022.02.25 |
[Vue.js] plugin으로 toast 만들기 (0) | 2022.02.19 |
[Vue.js/라이브러리] Vue2Editor (0) | 2022.02.15 |
[Vue.js] push, replace, go (0) | 2022.02.14 |
Comments