-
arrow function개발/react 2020. 12. 6. 13:59
요즘 트렌드 언어 답게 react에서 사용하는 javascript도 arrow function으로 함수를 줄일 수 있다. 자바에서 사용하는 람다나 swift의 closure 랑 비슷하게 이름없는 함수(anonymous) 를 사용해서 1회성의 함수를 따로 선언하지 않고 삽입해서 쓸 수 있는 기능이다.
이 함수들은 모양새는 다르지만 모두 똑같이 제곱값을 리턴하는 함수다.
const square1 = function(x) { return x * x }; const square2 = (x) => { return x * x; }; const square3 = (x) => x * x;
객체 내에서 함수로 들어갈 때도 동일하게 줄일 수 있다.
const user = { name: 'kwony', cities: ['pangyo', 'sinchon', 'madrid'], printPlacedLived: function() { return this.cities.map((city) => { return this.name + ' has lived in ' + city + '!'; }); }, printPlacedLived2() { return this.cities.map((city) => { return this.name + ' has lived in ' + city + '!'; }); } }
view 요소의 콜백 함수에도 arrow function을 적용할 수 있다. 아래 코드보면 첫번째 버튼은 arrow function을 적용해서 넣었고 두번째 버튼은 따로 만든 onClickButton 함수를 사용했다. 두개 모두 동일한 역할을 한다.
const onClickButton = () => { toggle.isVisible = !toggle.isVisible render() } const render = () => { const template = ( <div> <button onClick={() => { toggle.isVisible = !toggle.isVisible render() }}>{toggle.isVisible ? 'hide detail' : 'show detail'}</button> <button onClick={onClickButton}>{toggle.isVisible ? 'hide detail' : 'show detail'}</button>
간단해보이지만 손에 익으려면 꽤 시간이 걸리니 이것도 놓치지 말고 꼼꼼히 연습해봐야겠다.