Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução ao React (Simplificado)

Introdução ao React (Simplificado)

Gabriel Sobrinho

February 27, 2016
Tweet

More Decks by Gabriel Sobrinho

Other Decks in Programming

Transcript

  1. React • Biblioteca para construir interfaces de usuário • Implementa

    apenas a camada de apresentação • Trabalha com Virtual DOM para ser performático • Fluxo de dados em direção única • Desenvolvido e mantido pelo Facebook/Instagram
  2. JSX

  3. JSX • Transpiler de XML para JavaScript • Uso opcional

    porém recomendado • Adiciona alguns recursos como o spread operator
  4. JSX • Elimina a necessidade de conhecer a API da

    biblioteca Virtual DOM utilizada pelo React • Facilita a manutenção dos componentes por desenvolvedores casuais
  5. Componentes • React se resume basicamente apenas a construir componentes

    • Não possui opinião sobre como a arquitetura da sua aplicação deve ser feita • Componentes são bem definidos, previsíveis, encapsulados, testáveis e re-usáveis
  6. Componentes var Facebook = React.createClass({ render: function() { var href

    = 'https://www.facebook.com/' + this.props.username; return ( <a href={href}> {this.props.username} </a> ); } });
  7. Props • Armazena os argumentos externos do componente • React

    possui uma interface para validar os dados recebidos como tipo, obrigatoriedade e etc • Excelente para documentar o componente
  8. Props var Gravatar = React.createClass({ render: function() { var url

    = gravatar(this.props.email); return ( <img alt={this.props.name} src={url} /> ); } });
  9. Props var Gravatar = React.createClass({ propTypes: { name: React.PropTypes.string, email:

    React.PropTypes.string.isRequired }, render: function() { var url = gravatar(this.props.email); return ( <img alt={this.props.name} src={url} /> ); } });
  10. State • Armazena o estado interno do componente • O

    componente é automaticamente atualizado quando o state sofre alguma alteração • Seu uso deve ser evitado sempre que possível porque introduz incertezas quanto ao estado
  11. State var Clock = React.createClass({ componentDidMount: function() { setInterval(this.tick, 1000);

    }, tick: function() { this.setState({clock: new Date}); }, render: function() { return <p>{this.state.clock}</p>; } });
  12. Bônus • Hooks: funções que são chamadas em momentos específicos

    da vida do componente • Mixins: reuso de código entre componentes • Flux: sugestão de arquitetura bastante similar ao MVC original