🌱 vue에 자바스크립트 표현식 적용하기
: 데이터 바인딩 방법 중 하나인 {{ }} 안에 자바스크립트 표현식을 넣으면 됨.
예시) ... <div id='test'> <p>{{ message }}</p> <p>{{ message + '!!!' }}</p> <p>{{ message.split('').reverse().join('') }}</p> </div> ... <script> new Vue({ el: '#test', data : { message: 'hello~~~~!!' } }) </script>
👉 vue에서 자바스크립트 표현식 사용할 때 주의할 점!
1. template안에서는 자바스크립트의 선언문과 분기 구문을 사용할 수 없다.
2. 복잡한 연산은 인스턴스 안에서 처리하고, 화면 안에서는 연산 결과만 표시해야 한다.
ex)
...
<div id='test'>
<!-- 1번 예시 -->
{{ const a = 10; }} <!--(X) 선언문 사용 불가 !! -->
{{ if (true) { return 100 }} <!--(X) 분기 구문 사용 불가 !! -->
{{ true ? 100 : 0 }} <!--(O) 삼항연산자 사용 가능 -->
<!-- 2번 예시 -->
{{ message.split('').reverse().join('') }} <!--(X)복잡 연산 안돼 -->
{{ reversedMessage }} <!-- (O) 아래 computed속성으로 계산 한 최종값 -->
</div>
...
<script>
new Vue({
el: '#test',
data: {
message: 'hello~~~!!!'
},
computed : { // 데이터 속성을 자동으로 계산해주는 속성
reversedMessage:
function(){
return this.message.split('').reverse().join('');
// this.message = data안의 message
}
}
})
</script>
- 내장 api를 활용한 간단한 연산 정도에 적합.
- 데이터 호출과 같이 시간이 상대적으로 더 많이 소모되는 비동기 처리에 적합.