--- id: special-non-dom-attributes title: Special Non-DOM Attributes layout: docs permalink: special-non-dom-attributes.html prev: dom-differences.html next: reconciliation.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.