2017-05-05 1 views
5

나는 생성자 메서드에 대해 React Docs을 읽었으며 설정 상태와 바인딩 함수까지 사용할 수 있지만 실제로는 대부분 필요한 경우 무엇입니까?Constructor Method in React

export default class MyClass extends Component { 
    constructor(props) { 
     super(props); 
     this.state = { 
      foo: 'bar', 
     }; 
     this.member = 'member'; 
     this.someFunction = this.anotherFunction(num); 
    } 
    anotherFunction = (num) => num * 2; 
    render() { 
     // render jsx here 
    } 
} 

을하고 단순히 내가 알아야 할 모든 성능 문제가 하나의 옵션이 다른 선호되어

export default class MyClass extends Component { 
    state = { 
     foo: 'bar', 
    }; 
    member = 'member'; 
    someFunction = this.anotherFunction(num); 
    anotherFunction = (num) => num * 2; 
    render() { 
     // render jsx here 
    } 
} 

처럼 생성자 이외의 모든 퍼팅 사이의 차이점은 무엇입니까? 이것은 약간 나를 위해 괴롭혀 왔고 거기에서 구체적인 대답을 찾을 수없는 것 같습니다.

+0

'foo = bar' 구문 * 외부 * 생성자가 유효하지 않은 JavaScript입니다. 실험적인 기능입니다. –

답변

5

두 가지 예는 기능적으로 동일하지만 중요한 것은 클래스 메서드 외부에서 물건을 할당하는 것입니다.하지만 renderconstructor 이외의 모든 것에서와 마찬가지로 표준 ES6은 아니며 바벨을 통해서만 일합니다. 이 구문은 제안 된 class property syntax입니다.

+0

오른쪽. 나는 바벨이 그 마법을 연구하고 있음을 알고 있었지만, 만약 그 트레이드 오프가 무엇인지는 확실치 않았다. 또한 나는 [이 기사] (https://medium.com/joshblack/writing-a-react-component-in-es2015-a0b27e1ed50a)가 도움이된다는 사실을 발견했다. 감사. – user3802738