front-end/Vue.js

Vue Filter

정구 2022. 2. 23. 10:16
728x90

뷰의 필터는 화면에 표시되는 텍스트의 형식을 쉽게 변환해주는 기능이다.

 

가장 간단하게는 단어의 대문자화부터 다국어, 국제 통화 표시 등 다양하게 사양할 수 있다.

 

필터의 사용법은 다음과 같다.

 

<div id="app">
  {{ message | capitalize }}
</div>
new Vue({
  el: '#app',
  data: {
    message: 'hello'
  },
  filters: {
    capitalize: function(value) {
      if (!value) return ''
      value = value.toString()
      return value.charAt(0).toUpperCase() + value.slice(1)
    }
  }
})

 

위의 코드를 실행하면 'Hello' 텍스트가 화면에 출력된다.

 

필터를 쓰지 않았다면 'hello'가 출력되었을 것이다.

 

 

 

위와 같이 filters 속성을 이용하여 각 컴포넌트에 필터를 등록하는 방법도 있지만, 실제로는 대부분 filters.js 파일을 별도로 분리하여 사용한다.

 

// filters.js
export function capitalize() {
  // ..
}

export function translate() {
  // ..
}
// main.js
import Vue from 'vue';
import * as filters from 'filters.js';

Object.keys(filters).forEach(function(key) {
  Vue.filter(key, filters[key]);
});

new Vue({
  // ..
})
728x90