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

Introdução ao React (Simplificado)

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Introdução ao React (Simplificado)

Avatar for Gabriel Sobrinho

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