diff --git a/react.md b/react.md
index 64dba537b..ae920d93e 100644
--- a/react.md
+++ b/react.md
@@ -98,7 +98,7 @@ class Info extends React.Component {
}
}
```
-{: data-line="6-7"}
+{: data-line="6,7"}
Nest components to separate concerns. See: [Composing Components](https://facebook.github.io/react/docs/components-and-props.html#composing-components)
@@ -208,33 +208,126 @@ class MyComponent extends React.Component {
this.input = el} />
}
+
+ componentDidMount () {
+ this.input.focus()
+ }
}
```
-{: data-line="4"}
-
-```jsx
-this.input.focus()
-this.input.value()
-```
+{: data-line="4,9"}
Allows access to DOM nodes. See: [Refs and the DOM](https://facebook.github.io/react/docs/refs-and-the-dom.html)
### DOM Events
+```jsx
+class MyComponent extends React.Component {
+ render () {
+ this.onChange(event)} />
+ }
+
+ onChange (event) {
+ this.setState({ value: event.target.vlaue })
+ }
+}
+```
+{: data-line="5,9"}
+
+Pass functions to attributes like `onChange`. See: [Events](https://facebook.github.io/react/docs/events.html)
+
+## Other features
+
+### Transfering props
+
```html
-
+
+```
+{: .-setup}
+
+```jsx
+class VideoPlayer extends React.Component {
+ render () {
+ return
+ }
+}
```
{: data-line="3"}
+Propagates `src="..."` down to the sub-component.
+See [Transferring props](http://facebook.github.io/react/docs/transferring-props.html).
+
+### Top-level API
+
```jsx
-handleChange: function(event) {
- this.setState({ value: event.target.value });
-}
+React.createClass({ ... })
+React.isValidElement(c)
```
-Add attributes like `onChange`. See: [Events](https://facebook.github.io/react/docs/events.html)
+```jsx
+ReactDOM.render(, domnode, [callback])
+ReactDOM.unmountComponentAtNode(domnode)
+```
+
+```jsx
+ReactDOMServer.renderToString()
+ReactDOMServer.renderToStaticMarkup()
+```
+
+JSX patterns
+------------
+{: .-two-column}
+
+### Style shorthand
+
+```jsx
+var style = { height: 10 }
+return
+```
+
+```jsx
+return
+```
+
+See: [Inline styles](https://facebook.github.io/react/tips/inline-styles.html)
+
+### Inner HTML
+
+```jsx
+function markdownify() { return "...
"; }
+
+```
+
+See: [Dangerously set innerHTML](https://facebook.github.io/react/tips/dangerously-set-inner-html.html)
+
+### Lists
+
+```jsx
+class TodoList extends React.Component {
+ render () {
+ const { items } = this.props
+
+ return
+ {items.map(item =>
+ )}
+
+ }
+}
+```
+{: data-line="6,7"}
+
+Always supply a `key` property.
+
+### Conditionals
+
+```jsx
+
+ {showPopup
+ ?
+ : null}
+
+```
Property validation
-------------------
@@ -351,100 +444,8 @@ MyCo.propTypes = {
}
```
-## Other features
-
-### Transfering props
-
-```html
-
-```
-{: .-setup}
-
-```jsx
-class VideoPlayer extends React.Component {
- render () {
- return
- }
-}
-```
-{: data-line="3"}
-
-Propagates `src="..."` down to the sub-component.
-See [Transferring props](http://facebook.github.io/react/docs/transferring-props.html).
-
-### Top-level API
-
-```jsx
-React.createClass({ ... })
-React.isValidElement(c)
-```
-
-```jsx
-ReactDOM.render(, domnode, [callback])
-ReactDOM.unmountComponentAtNode(domnode)
-```
-
-```jsx
-ReactDOMServer.renderToString()
-ReactDOMServer.renderToStaticMarkup()
-```
-
-JSX patterns
-------------
-{: .-two-column}
-
-### Style shorthand
-
-```jsx
-var style = { height: 10 }
-return
-```
-
-```jsx
-return
-```
-
-See: [Inline styles](https://facebook.github.io/react/tips/inline-styles.html)
-
-### Inner HTML
-
-```jsx
-function markdownify() { return "...
"; }
-
-```
-
-See: [Dangerously set innerHTML](https://facebook.github.io/react/tips/dangerously-set-inner-html.html)
-
-### Lists
-
-```jsx
-class TodoList extends React.Component {
- render () {
- const { items } = this.props
-
- return
- {items.map(item =>
- )}
-
- }
-}
-```
-{: data-line="6-7"}
-
-Always supply a `key` property.
-
-### Conditionals
-
-```jsx
-
- {showPopup
- ?
- : null}
-
-```
-
Examples
--------
+--------
{: .-left-reference}
### Basic example