2016-03-03 11 views
13

Pracuję nad projektem React Native i używam klas ES6 dla komponentów React.React.js - przy użyciu inicjalizatorów właściwości dla wszystkich metod składowych

Ponieważ komponenty React zdefiniowane w klasach ES6 nie mają funkcji automatycznego łączenia, zespół React recommends łączy inicjatory właściwości ES7 z funkcjami strzałek w celu uzyskania tego samego efektu.

W celu zachowania spójności i uniknąć zamieszania z tym wiążące, używam ES7 inicjatorów własności dla wszystkich metod składowych:

class Foo extends React.Component { 
    constructor(props) { 
    super(props); 
    ... 
    } 

    componentDidMount =() => { 
     ... 
    }; 

    bar =() => { 
    ... 
    }; 

    render =() => { 
    ... 
    }; 
} 

zastanawiałem się - czy są jakieś poważne zastrzeżenia skuteczności mieć świadomość ? W szczególności zastanawiam się nad metodą render().

Ogólnie rzecz biorąc, czy wydaje się to dobrym podejściem?

Odpowiedz

10

Największym zastrzeżeniem jest to, że ta konkretna funkcja nie jest jeszcze standardowa, ani nie została jeszcze uzgodniona. (To nie będzie ES7, ponieważ nie ma ES7, może ES2017, ale wciąż niejasne.)

Istnieje również koszt przydzielenia kilku nowych długo żyjących obiektów i przechowywania ich na zajęciach.

Nie polecam tego. Tylko dla wywołań zwrotnych.

+0

Dzięki za informację zwrotną! – ender672

+1

Szybkie śledzenie - mój zespół zdecydował się użyć metody bind() dla wywołań zwrotnych, a na razie wstrzymujemy się z inicjalizatorami właściwości z funkcjami strzałek. Twoja odpowiedź pomogła nam podjąć tę decyzję. – ender672

Powiązane problemy