Nuxt에 날짜 형식 필터 추가하기
6112 단어 vuenuxttypescript
extends
메서드에 filters
속성을 가진 옵션 개체를 제공합니다. 필터는 객체 리터럴이 됩니다. 속성 이름은 구성 요소 내의 필터 이름이 됩니다. 특별히 멋진 형식을 염두에 두지 않았으므로 이 필터를 "formatDate"라고 부르겠습니다. 약간의 인터넷 검색에서 내장 Intl.DateTimeFormat
을 찾았습니다. 이것이 바로 우리에게 필요한 것 같습니다. 언어별 형식과 시간대를 처리하는 것 같습니다. 아직까지는 별로 필요없고 영어로만 작성해서 mm/dd/yyyy
보는게 익숙합니다. 지금은 그것으로 충분하다고 생각합니다.import Vue from "vue";
export default Vue.extend({
filters: {
formatDate: (date: Date) =>
Intl.DateTimeFormat("us-EN").format(date),
},
});
한 가지 걸림돌은 내가 Nuxt 콘텐츠를 사용하고 있고 마크다운 파일이 생성된 시점을 기준으로 모듈이 제공하는
createdAt
문자열을 표시하고 싶다는 것입니다. createdAt
는 문자열 형식으로 날짜를 반환하므로 직접 처리하려면 필터를 업데이트해야 합니다.import Vue from "vue";
export default Vue.extend({
filters: {
formatDate: (dateStr: string) =>
Intl.DateTimeFormat("us-EN").format(new Date(dateStr)),
},
});
템플릿에서 테스트하면 제대로 작동하는 것 같습니다.
<template>
<div>
Date: {{ post.createdAt | formatDate }}
<div>
</template>
이제 이 필터가 꽤 유용해 보입니다. 나는 우리가 이것을 많이 필요로 할 것이라고 생각한다.
이 필터를 모든 사용자가 사용할 수 있도록 해야 합니다.
템플릿.
일반 Vue에서는 다음과 같이 Vue에 필터를 등록할 수 있습니다.
Vue.filter("formatDate", (dateStr: string) =>
Intl.DateTimeFormat("us-EN").format(new Date(dateStr))
);
실제로 Nuxt에서도 동일하지만 필터를
nuxt.config.ts
파일에 등록된 플러그인입니다./plugins
디렉터리에 format-date.ts
라는 파일을 만듭니다. 우리는 "플러그인"루트 VueJS 앱이 인스턴스화되기 전에 실행됩니다.
import Vue from "vue";
Vue.filter("formatDate", (dateStr: string) =>
Intl.DateTimeFormat("us-EN").format(new Date(dateStr))
);
이전에 렌더링된 페이지를 확인하면 페이지가 새로고침된 후에도 필터가 계속 작동해야 합니다.
Reference
이 문제에 관하여(Nuxt에 날짜 형식 필터 추가하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wrrnwng/adding-a-date-format-filter-in-nuxt-317p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)