VueJS 개발할 때 많이 쓰이는 ES6 문법 4가지에 대해서 다룬다.
//ES5방식
function(인자) {
//로직
}
//ES6방식
(인자) => {
//로직
}
Arrow함수의 중요한 특징은 this로 바인딩 하지 않는 것이다. 대신, Arrow함수 안에서 선언된 this는 해당 함수가 수행되는 컨텍스트를 가리킨다.
따라서 콜백 함수 안에서 뷰 컴포넌트의 데이터를 접근하려면 유효 범위를 이어주는 추가 코딩이 필요하다.
예제
new Vue({
data: {
size: 'large',
items: [ { size: 'small' }, { size: 'large' } ]
},
computed: {
filterBySize() {
let size = this.size;
return this.items.filter(function(item) {
return item.size === size;
// 참고 : 여기서 this.size를 접근하면 undefined
});
}
}
});
size는 데이터 속성이고 filterBySize는 computed 속성입니다. filter() API를 사용하기 전에 선언한 let size = this.size;는 콜백 함수 안에서 뷰 컴포넌트의 데이터 속성을 접근하기 위해 추가한 코드입니다.
filterBySize() {
return this.items.filter((item) => {
return item.size === this.size;
});
}
인자 값이 1개인 경우 더 줄일 수 있다.
filterBySize() {
return this.items.filter(item => item.size === this.size);
}
문자열을 여러 줄에 걸쳐 표시할 수 있습니다. (뷰 컴포넌트의 템플릿 선언 시에 유용함),
문자열과 자바스크립트 표현식을 함께 사용하기 좋습니다. (computed 속성 사용이 편함)
예제
Vue.component({
template: `<div>
<h1></h1>
<p></p>
</div>`
});
아래는 변수 삽입식 표현식.
new Vue({
data: {
name: 'George'
},
computed: {
greeting() {
return `Hello, ${this.name}, how are you?`
}
}
});
Back tic 안에 ${} 문법을 사용하면 한번에 작성할 수 있다.
// file1.js
export default {
myVal: 'Hello'
}
// file2.js
import obj from './file1.js';
console.log(obj.myVal); // Hello
자바스크립트 애플리케이션을 여러 개의 파일로 분할할 수 있습니다.
프로젝트 안에서 재사용이 가능한 코드를 생성할 수 있습니다.
let myObj = {
prop1: 'Hello',
prop2: 'World'
};
const prop1 = myObj.prop1;
const prop2 = myObj.prop2;
위 문법을 아래와 같이 바꿀 수 있습니다.
let myObj = {
prop1: 'Hello',
prop2: 'World'
};
const { prop1, prop2 } = myObj;
console.log(prop1); // Hello
출처 - 캡틴판교