React to izomorphic/universal framework. Oznacza to, że istnieje wirtualna reprezentacja drzewa komponentów interfejsu użytkownika, która jest oddzielna od rzeczywistego renderowania, które generuje w przeglądarce. Z dokumentacji:
Reaguj jest tak szybki, ponieważ nie komunikuje się bezpośrednio z DOM. React utrzymuje szybką reprezentację DOM w pamięci.
jednak, że w pamięci reprezentacja nie jest związana bezpośrednio z DOM w przeglądarce (chociaż nazywa wirtualnej DOM, który jest niefortunne i mylące nazwy dla uniwersalnego apps ram), i jest strukturą danych podobną do DOM, która reprezentuje wszystkie hierarchie składników interfejsu użytkownika i dodatkowe metadane. Wirtualny DOM to tylko szczegół implementacji.
„Uważamy, że prawdziwe fundamenty React to po prostu idee podzespołów i elementów: będąc w stanie opisać tego, co chcesz uczynić w sposób deklaratywny sposób Są to elementy wspólne dla wszystkich tych różnych opakowaniach części.. React specyficzne dla niektórych celów renderowania nie są zazwyczaj tym, o czym myślimy, gdy myślimy o React. " - React js Blog
Zatem konkluzja jest taka, że React jest świadczenie agnostycznego, co oznacza, że nie dba o to, co jest ostateczne wyjście. Może to być drzewo DOM w przeglądarce, może to być XML, składniki natywne lub JSON.
„Gdy patrzymy na opakowaniach, jak reagować, rodzimy, reagują techniki, reagują-płótno i reagują trzy, to staje się jasne, że piękno i istotę React ma nic wspólnego z przeglądarek lub DOM. " - React js Blog
teraz, że wiesz, jak reagować dzieła, nie jest łatwo odpowiedzieć na pytanie :)
montażu jest proces wyprowadzania wirtualną reprezentację komponentu do ostatecznego UI reprezentacja (np. DOM lub składniki natywne).
W przeglądarce Oznaczałoby to wyprowadzanie React element do rzeczywistego elementu DOM (np HTML div lub li element) w drzewie DOM. W natywnej aplikacji oznaczającej wyprowadzanie elementu React do komponentu natywnego. Możesz również napisać własny renderer i wypisać składniki w JSON lub XML, a nawet XAML, jeśli masz odwagę.
Tak więc, montowanie/odmontowywanie procedur obsługi ma kluczowe znaczenie dla aplikacji React, ponieważ można tylko upewnić się, że komponent jest wyprowadzany/renderowany, gdy jest on zamontowany. Jednak procedura obsługi componentDidMount
jest wywoływana tylko podczas renderowania do rzeczywistej reprezentacji UI (DOM lub Native Components), ale nie w przypadku renderowania do ciągu HTML na serwerze przy użyciu renderToString
, co ma sens, ponieważ komponent nie jest faktycznie montowany, dopóki nie zostanie dociera do przeglądarki i wykonuje w niej.
I tak, Montaż jest również niefortunnym/mylącym nazwiskiem, jeśli mnie o to poprosisz.IMHO componentDidRender
i componentWillRender
byłyby znacznie lepszymi nazwami.
http://www.ministryofprogramming.com/react-js-the-king-of-universal-apps/
Chciałbym wskazać że gdy wywołasz 'React.createElement (FooComponent)' nie tworzysz instancji 'FooComponent'. 'foo' jest wirtualną reprezentacją DOM' FooComponent', znaną również jako element React. Ale może to właśnie miałeś na myśli przez '' FooComponent' React type_. Bez względu na to, że nie montujesz komponentów w React, wywołujesz render, który z kolei _might_ montuje komponent, jeśli potrzebny jest prawdziwy węzeł DOM, który reprezentuje komponent w drzewie DOM. Rzeczywisty montaż to zdarzenie, w którym dzieje się to po raz pierwszy. –
Montowanie odnosi się do dołączenia instancji składnika React do węzła DOM, co jest niezbędne do aktualizowania renderowania drzewa/przyrostowego podczas kolejnych wywołań renderowania. –