diff --git a/docs/_data/nav_docs.yml b/docs/_data/nav_docs.yml index 64b95f2c89d..2a121249bb3 100644 --- a/docs/_data/nav_docs.yml +++ b/docs/_data/nav_docs.yml @@ -55,3 +55,5 @@ title: Event System - id: dom-differences title: DOM Differences + - id: special-non-dom-attributes + title: Special Non-DOM attributes diff --git a/docs/docs/ref-04-tags-and-attributes.md b/docs/docs/ref-04-tags-and-attributes.md index d3f28843f7d..5e4aea4edac 100644 --- a/docs/docs/ref-04-tags-and-attributes.md +++ b/docs/docs/ref-04-tags-and-attributes.md @@ -57,7 +57,9 @@ rowSpan scrollLeft scrollTop selected size spellCheck src step style tabIndex target title type value width wmode ``` -In addition, the non-standard `autoCapitalize` attribute is supported for Mobile Safari. +The non-standard `autoCapitalize` attribute is supported for Mobile Safari. + +In addition, there is the React-specific attribute `dangerouslySetInnerHTML` ([more here](/react/docs/special-non-dom-attributes.html)), used for directly inserting DOM strings into a component. ### SVG Attributes diff --git a/docs/docs/ref-06-dom-differences.md b/docs/docs/ref-06-dom-differences.md index cb5f3c0d490..94cfa5f39d1 100644 --- a/docs/docs/ref-06-dom-differences.md +++ b/docs/docs/ref-06-dom-differences.md @@ -4,6 +4,7 @@ title: DOM Differences layout: docs permalink: dom-differences.html prev: events.html +next: special-non-dom-attributes.html --- React has implemented a browser-independent events and DOM system for performance and cross-browser compatibility reasons. We took the opportunity to clean up a few rough edges in browser DOM implementations. @@ -12,3 +13,4 @@ React has implemented a browser-independent events and DOM system for performanc * The `style` attribute accepts a JavaScript object with camelCased properties rather than a CSS string. This is consistent with the DOM `style` JavaScript property, is more efficient, and prevents XSS security holes. * All event objects conform to the W3C spec, and all events (including submit) bubble correctly per the W3C spec. See [Event System](events.html) for more details. * The `onChange` event behaves as you would expect it to: whenever a form field is changed this event is fired rather than inconsistently on blur. We intentionally break from existing browser behavior because `onChange` is a misnomer for its behavior and React relies on this event to react to user input in real time. See [Forms](forms.html) for more details. +* Form input attributes such as `value` and `checked`, as well as `textarea`. [More here](/react/docs/forms.html). diff --git a/docs/docs/ref-07-special-non-dom-attributes.md b/docs/docs/ref-07-special-non-dom-attributes.md new file mode 100644 index 00000000000..c174deb0304 --- /dev/null +++ b/docs/docs/ref-07-special-non-dom-attributes.md @@ -0,0 +1,13 @@ +--- +id: special-non-dom-attributes +title: Special Non-DOM Attributes +layout: docs +permalink: special-non-dom-attributes.html +prev: dom-differences.html +--- + +Beside [DOM differences](/react/docs/dom-differences.html), React offers some attributes that simply don't exist in DOM. + +- `key`: an optional, unique identifier. When your component shuffles around during `render` passes, it might be destroyed and recreated due to the diff algorithm. Assigning it a key that persists makes sure the component stays. See more [here](/react/docs/multiple-components.html#dynamic-children). +- `ref`: see [here](/react/docs/more-about-refs.html). +- `dangerouslySetInnerHTML`: takes an object with the key `__html` and a DOM string as value. This is mainly for cooperating with DOM string manipulation libraries. Refer to the last example on the front page.