2017-05-05 30 views
5

React Docs yapıcı metodu ile ilgili olarak ve durum ve bağlama fonksiyonlarını ayarlamaya kadar ne için kullanılabileceğini okudum ama çoğu durumda gerçekten gerekli mi?Reaktör Oluşturma Metodu

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 
    } 
} 

yapıyor ve sadece Bilmem gereken herhangi bir performans sorunları vardır bir seçenek diğeri üzerinde tercih mi

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

gibi yapıcı dışında tüm bu koyarak arasındaki fark nedir? Bu beni biraz rahatsız ediyor ve orada somut bir cevap bulamıyorum.

+0

'foo = bar' sözdizimi * dışında * yapıcı geçerli JavaScript değil, deneysel bir özelliktir. –

cevap

5

İki örneğiniz, işlevsel olarak özdeştir, ancak önemli olan şey, sınıf yöntemlerinin dışındaki öğelerin atanması, ancak bir sınıfın gövdesinin içinde, render ve constructor dışındaki her şeyle olduğu gibi, standart ES6 değildir ve sadece Babel ile çalışır. Bu sözdizimi önerilen class property syntax.

+0

Sağ. Babel'in büyüsünü çalıştığını biliyordum, ama eğer (eğer varsa) sahip oldukları şeyden çok emin değildim. Ayrıca [bu yazı] 'yı (https://medium.com/@joshblack/writing-a-react-component-in-es2015-a0b27e1ed50a) yardıma dayandım. Teşekkürler. – user3802738