2016-10-13 3 views
0

Я прочитал this:Как работает элемент create React (...)? Для чего предназначены реквизиты?

ReactElement createElement(
    string/ReactClass type, 
    [object props], 
    [children ...] 
) 

Создать и вернуть новый ReactElement данного типа. Аргумент типа может быть либо строкой имени тега html (например, 'div', 'span', и т. Д.), Либо ReactClass (созданный с помощью React.createClass).

Это на самом деле не объясняет мне, что происходит с [object props]. Зачем это нужно? Для чего его используют ?

Не могли бы вы объяснить, что происходит с [object props] при звонке в createElement? Как они используются? Будут ли они использоваться для рендеринга элемента? Могут ли они измениться позже? Являются ли они изменчивыми или неизменными?

Причина для запроса: Я пытаюсь выяснить, how to use scalajs-react.

+1

Эта ссылка может быть полезна: https://facebook.github.io/react/docs/transferring-props.html –

+0

вместо createElement вы можете просмотреть «компонент расширения» ' – KOTIOS

+0

' extend component'? что-нибудь объяснит? разве это не просто еще один синтаксический сахар (что усложняет ситуацию)? – jhegedus

ответ

1

для всех тех, кто когда-либо задумывался, как реагирует на самом деле работает? проверка на ссылку ниже, которая обеспечивает пик подхалима в реализации среагировать

How React Works - implementation notes

2

Некоторое время назад Дэн Абрамов разместил это на Twitter:

https://twitter.com/dan_abramov/status/781620845185732608

(который я думаю, что было началом того, что " Как работает React Works - примечания по реализации "post abhirathore2006).

Вы можете видеть, что шлепнуть здесь: http://jsbin.com/qiguyibolu/1/edit?js,output

Например, вот что происходит с реквизитом:

var node = document.createElement(type); 
Object.keys(props).forEach(propName => { 
    if (propName !== 'children') { 
     node.setAttribute(propName, props[propName]); 
    } 
}); 

Они в конечном итоге в качестве атрибутов узла! Поэтому я действительно рекомендую вам прочитать https://facebook.github.io/react/contributing/implementation-notes.html, чтобы получить более глубокое понимание о том, когда мы вызываем функцию передачи реквизита, и как мы их обновляем. Ребята отлично поработали, объясняя, как все работает под капотом. Я все еще делаю это сам на самом деле :)

Смежные вопросы