반응형
vue.js에서 v-if 조건 중 filter를 통해 정제된 데이터 값이랑 비교하고 싶을 때가 있다.
📌v-if문 시 filter로 이용한 데이터 값 조건으로 넣어주기
v-if="$options.filters.필터명(필터파라미터)"
샘플 코드
filter를 통해서 user레벨을 확인한 뒤 그에 따른 인사말을 v-if를 이용해서 출력하는 코드이다.
<template>
<div>
로그인회원 레벨 : {{$options.filters.levelCheck(userList, loginUser.id)}}
<div v-if="$options.filters.levelCheck(userList, loginUser.id) === 2">
안녕하세요! 정회원이시네요!
</div>
<div v-else>
안녕하세요! 준회원이시네요!
</div>
</div>
</template>
<script>
export default {
data() {
return {
userList: [
{id:1, name:'김철수', level:1},
{id:2, name:'김한나', level:2},
{id:3, name:'이사랑', level:2},
],
loginUser:'',
}
},
mounted() {
this.loginUser = this.userList[0];
},
filters: {
levelCheck(object,id) {
if (object === undefined || object === null || object === "") {
return -1
} else {
let target = object.filter(object => object.id === id);
if (target.length === 0) {
return
} else {
return target[0].level
}
}
},
},
}
</script>
만약 필터를 통해서 준회원인지 정회원인지 확인하고
그에 맞는 텍스트를 보여줘야 하는 상황이라면
회원 레벨을 체크하는 필터를 만든 뒤
v-if에서 user를 확인해서 출력된 level 값에 따른 텍스트를 보여준다.
결과 화면
만약 로그인 user가 0번 김철수 일 경우
만약 로그인 user가 1번인 김한나 일 경우
조건에 따라 텍스트가 변경된 것을 확인할 수 있다.
반응형
'FrontEnd > Vue.js' 카테고리의 다른 글
[nuxt/vue] nuxt에서 .env developement버전 production버전 파일 연결하기 (0) | 2022.10.13 |
---|---|
[vue] vue 데이터피커 - bootstrap datepicker css 확인 방법(debug 속성) (0) | 2022.08.27 |
[Nuxt]다음 카카오 우편번호 서비스 Vue 프로젝트에 연동하기 (1) | 2022.07.05 |
[javascript/Vue] dayjs에서 요일 한국어 적용하기 (locale/ko) (0) | 2022.05.03 |
[Vue/nuxt] mounted에서 $ref undefined 해결하기(<client-only> 이슈) (0) | 2022.05.02 |