IT Tip./Vue.js 2.x.x

Vue에서 숫자의 콤마(,) 구현하기

impnem 2022. 5. 30. 22:48

 

 

 

Vue에서 숫자의 콤마(,) 구현하기

 

 

 


<버전 정보>

  • vue version : 2.6.14

 


 

<사용 계기>

  • Vue.js을 사용하여 포트폴리오용 웹 앱을 개발 중 가격을 표기해야 할 상황이 생겨 숫자를 출력하였지만, 3자리마다 생기는 콤마(,)가 없으니 허전해보였다.
  • 그래서 vue에서 콤마(,)를 사용할 수 있는 방법을 찾게 되었다.

 


 

<적용 과정>

  • 적용 방법은 매우 간단하다.
  • 콤마를 그리는 코드를 추가하고, 콤마를 표기할 숫자의 출력부에 몇 자의 코드를 적어주기만 하면 적용이 완료된다.

 


 

<실제 코드>

<template>
  <div>
    <v-card
      v-for="(item, i) in items"
      :key="i"
    >
        <v-list>
          <v-card-title>{{ item.date }}</v-card-title>
          <v-card
            v-for="(contents, c) in item.contents"
            :key="c"
          >
            <v-list-item-content>
              <v-list-item-title>{{ contents.title }} <small class="grey--text">( {{ contents.time }} )</small></v-list-item-title>
              <v-list-item-subtitle>
                가격 : {{ contents.amount | comma }}원
              </v-list-item-subtitle>
            </v-list-item-content>
          </v-card>
        </v-list>
    </v-card>
  </div>
</template>

<script>
export default {
  data () {
    return {
      financialDialog: false,
      items: [
        {
          date: '2022-05-30',
          contents: [
            {
              time: '20:17:32',
              title: '돈까스 배달음식',
              amount: 15000,
            }
          ]
        }
      ]
    }
  },
  filters: {
    comma (val) {
      return String(val).replace(/\B(?=(\d{3})+(?!\d))/g, ',')
    }
  }
}
</script>

comma를 사용한 결과 화면

  • 위처럼 간단하게 몇 가지 코드를 추가하여 출력하려는 숫자에 콤마가 추가되었다.
  • 코드의 최하단부에 filters라고 사용하였는데 이것으로는 텍스트 형식화(common text formatting)을 할 수 있다.
  • 하지만 vue3.0에서 filters는 삭제되며 filters 대신 methods나 computed 속성 사용을 권장하고 있다. 그 이유는 아래의 공식 사이트 링크를 통하여 확인하길 바란다.

 

 


 

<정리>

  • 이번에는 숫자에 콤마를 추가하는 방법에 대하여 알아보았다.
  • filters를 처음 사용해보아서 확인하려고 공식 사이트에 들어가 보았으나 장점보다는 단점이 많아 vue3.0에는 삭제되는 것을 보고 아마 처음이자 마지막 사용이 아닐까 생각도 되었다.
  • 현재 vue3.0에 vuetify가 지원되지 않아서 부득이하게 vue2.x을 사용하고 있어서 어쩔 수 없다.
  • 그리고 vue 공식 사이트에서 계속 업데이트되는 내용을 자주 확인해봐야겠다고 생각되었다.

 


 

<참고 페이지>

 

Vue - filters 기능 이용한 콤마 찍기

예전에는 filters 라는 메소드가 없어서 ? 못찾아서 ? 못사용했는데, 최근에 뷰에 대해 공부하다 보니 있었다. filters 기능을 몰랐던 당시에는 methods, watch 에 넣어서 사용했었는데 구분 할 수 있을것

kdinner.tistory.com

 

 

Filters | Vue.js

Filters 개요 Filters는 Vue 3.0에서 제거되며 더 이상 지원되지 않습니다. 2.x 구문 2.x 버전에서는 텍스트 형식화(common text formatting)을 할 수 있는 filters를 사용할 수 있었습니다. 예시: Bank Account Balance {

v3.ko.vuejs.org