Hands On React

11

Transcript of Hands On React

Page 1: Hands On React
Page 2: Hands On React

Componentsvar Component = React.createClass({ render: function () {

return <div>Hello, Good Afternoon.</div>; }});

React.render(<Component />, document.getElementById('container'));

https://jsfiddle.net/69z2wepo/10182/

Page 3: Hands On React

Propsvar Component = React.createClass({ getDefaultProps: function () {

return { name: "how are you today?" }; }, render: function () {

return <div>Hello, {this.props.name}</div>; }});

React.render(<Component name=”Kiprosh” />, document.getElementById('container'));

https://jsfiddle.net/69z2wepo/10183/

Page 4: Hands On React

Statesvar Component = React.createClass({ getInitialState: function () {

return { name: ‘Everyone’ }; }, render: function () {

return <div>Hello, {this.states.name}</div>; }});

React.render(<Component />, document.getElementById('container'));

https://jsfiddle.net/69z2wepo/10186/

Page 5: Hands On React

ComponentsWe know - 1. render() 2. getInitialState() 3. getDefaultProps()

Advanced:4. mixins: [ ... ] - https://facebook.github.io/react/docs/addons.html5. propTypes: { ... }6. statics7. displayName: "..."

Read More - Component Specs

Page 6: Hands On React

PropTypes propTypes: {

email: React.PropTypes.string.isRequired,seats: React.PropTypes.number,callback: React.PropTypes.func,isClosed: React.PropTypes.bool,enum: React.PropTypes.oneOf(['M','F']),

message: React.PropTypes.instanceOf(Message), element: React.PropTypes.element, // react element node: React.PropTypes.node, // num, string, element // ...or array of those customProp: function(props, propName, componentName) {

if (!/matchme/.test(props[propName])) { return new Error('Validation failed!');

} }

Page 7: Hands On React

Dom Nodes / Refs<input ref="myInput">

this.refs.myInput

React.findDOMNode(this.refs.myInput).focus()React.findDOMNode(this.refs.myInput).value

Page 8: Hands On React

Hands on

https://jsfiddle.net/69z2wepo/10201/https://jsfiddle.net/69z2wepo/10207/

Your message

Add

1. Message 12. Message 2

Page 9: Hands On React

Class setsvar cx = require('classnames');

render: function() { var classes = cx({

'message': true,'message-pinned': this.props.isPinned,'message-read': this.props.isRead

});

return <div className={classes}>Am a note!</div>;}

Page 10: Hands On React

How we write React - Best Practiceshttps://github.com/planningcenter/react-patterns

Page 11: Hands On React

Thank you