Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReactJS Starter
Search
Gefy Marcos
November 22, 2022
Programming
44
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ReactJS Starter
Palestra realizada durante o november tech, no Senac, Tubarão - SC em 11/2022.
Gefy Marcos
November 22, 2022
More Decks by Gefy Marcos
See All by Gefy Marcos
Desbravando a Carreira em Desenvolvimento: Dicas e Estratégias para iniciantes
gefymarcos
0
46
Zod: Levando a validação de dados a um novo nível.
gefymarcos
0
1.6k
Clean Code: Boas práticas e design de código
gefymarcos
0
160
Web to PWA!
gefymarcos
0
83
React Native por onde começar
gefymarcos
0
160
Other Decks in Programming
See All in Programming
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
240
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
160
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
160
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
710
New "Type" system on PicoRuby
pocke
1
830
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
880
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
450
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
190
Oxlintのカスタムルールの現況
syumai
6
1.1k
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.2k
net-httpのHTTP/2対応について
naruse
0
470
Agentic UI
manfredsteyer
PRO
0
140
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.1k
New Earth Scene 8
popppiees
3
2.3k
Navigating Team Friction
lara
192
16k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
For a Future-Friendly Web
brad_frost
183
10k
BBQ
matthewcrist
89
10k
How to Talk to Developers About Accessibility
jct
2
230
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Exploring anti-patterns in Rails
aemeredith
3
400
A Tale of Four Properties
chriscoyier
163
24k
Transcript
REACTJS STARTER
Founder @code4tuba GEFY GEFFERSON MARCOS Tech Lead Frontend @ StudioSol
None
O QUE É REACT? UMA BIBLIOTECA JAVASCRIPT PARA CRIAR INTERFACES
DE USUÁRIO
Facilita a criação de UIs; Deixa o código mais previsível
e simples de depurar. DECLARATIVO
Permite criar componentes encapsulados que gerenciam seu próprio estado; Permite
deixar a lógica da aplicação fora do DOM. BASEADO EM COMPONENTES
Funciona na Web, no backend com Node e para aplicativos
com React-Native. USE EM QUALQUER LUGAR
TEM MERCADO?
QUEM USA?
HELLO WORLD
ISSO É REACT class HelloWorld extends React.Component { render() {
return <div>Hello World </ div>; } } root.render(<HelloWorld /> );
É uma extensão de sintaxe para javascript; Recomendado para escrever
a UI; JSX
No React a lógica de renderização é acoplada as outras
lógicas de UI; Manipulação de eventos; Mudança de estado; Preparação de dados pra exibição. POR QUE JSX?
EU SOU UM ARQUIVO JSX const element = <h1>Hello, world!</h1>;
O DOM é a representação de dados de uma página
web; O React criou o React DOM pra fazer a manipulação desse DOM de forma performática. RENDERIZAÇÃO DE ELEMENTOS
O React DOM compara o elemento novo e seus f
ilhos e aplica a alteração só no nó que mudou. FONTE: HTTPS://CODEPEN.IO/GAEARON/PEN/GWOJEZ?EDITORS=1010 REACT DOM
INSERINDO ELEMENTO NO DOM <div id="root"></div> const element = <h1>Hello,
world!</h1>; ReactDOM.render( element, document.getElementById('root') ); .html .js
class HelloWorld extends React.Component { render() { return <div>Hello World
</ div>; } } root.render(<HelloWorld /> );
FONTE: HTTPS://BABELJS.IO/REPL BABEL
class HelloWorld extends React.Component { render() { return /*#__PURE__*/React.createElement("div", null,
"Hello World"); } } root.render( /*#__PURE__*/React.createElement(HelloWorld, null));
COMPONENTE DECLARATIVO function Welcome() { return <h1>Hello World</h1>; } class
Welcome extends React.Component { render() { return <h1>Hello World</h1>; } }
COMPONENTE DECLARATIVO const element = <h1>Hello, world!</h1>; ReactDOM.render( element, document.getElementById('root')
); <div id="root"></div>
COMPONENTE DECLARATIVO const element = <Welcome />; ReactDOM.render( element, document.getElementById('root')
); <div id="root"></div>
COMPONENTE DECLARATIVO ReactDOM.render( <Welcome />, document.getElementById('root') ); <div id="root"></div>
Props são imutáveis; States são mutáveis e quando seu valor
é alterado os métodos do ciclo de vida são executados. PROPS VS STATE
STATE E PROPS ReactDOM.render( <Welcome title="Senac" /> , document.getElementById('root') );
STATE E PROPS class Welcome extends React.Component { constructor(props) {
super(props); } render() { return ( <div> <h1>Hello, {this.props.title} < / h1> </ div> ); } }
STATE E PROPS class Welcome extends React.Component { constructor(props) {
super(props); } render() { return ( <div> <h1>Hello, {this.props.title} < / h1> // Hello, Senac </ div> ); } }
STATE E PROPS class Welcome extends React.Component { constructor(props) {
super(props); } render() { return ( <div> <h1>Hello, {this.props.title} < / h1> // Hello, Senac <button> {this.state.text} // undefined </ button> </ div> ); } }
STATE E PROPS class Welcome extends React.Component { constructor(props) {
super(props); this.state = { text: "não clicou" }; } render() { return ( <div> <h1>Hello, {this.props.title} < / h1> // Hello, Senac <button> {this.state.text} // não clicou </ button> </ div> ); } }
STATE E PROPS class Welcome extends React.Component { constructor(props) {
super(props); this.state = { text: "não clicou" }; } render() { return ( <div> <h1>Hello, {this.props.title} < / h1> // Hello, Senac <button onClick={() => this.setState({ text: "clicou"})} > {this.state.text} // não clicou </ button> </ div> ); } }
STATE E PROPS class Welcome extends React.Component { constructor(props) {
super(props); this.state = { text: "clicou" }; } render() { return ( <div> <h1>Hello, {this.props.title} < / h1> // Hello, Senac <button onClick={() => this.setState({ text: "clicou"})} > {this.state.text} // clicou </ button> </ div> ); } }
None
PRIMEIRO PASSO
PRIMEIRO PASSO Header
PRIMEIRO PASSO Order Options Header
PRIMEIRO PASSO Card Order Options Header
PRIMEIRO PASSO Card Title Card Image Card Description Card Info
Card Button Order Options Header Card
Jest; Typescript; React Router; Redux; Nextjs; Awesome-React. HTTPS://GITHUB.COM/ENAQX/AWESOME-REACT MUITA COISA…
FINE. I'LL DO IT MYSELF
PENSANDO DO JEITO REACT
- https://roadmap.sh/ HTTPS://GITHUB.COM/ENAQX/AWESOME-REACT ESTEJA PRONTO!
ROADMAP.SH
- https://roadmap.sh/ - https://github.com/felipe f ialho/frontend- challenges; - https://github.com/CollabCodeTech/ backend-challenges
-https://gefymarcos.com.br HTTPS://GITHUB.COM/ENAQX/AWESOME-REACT ESTEJA PRONTO!
14habits.com
OBRIGADO!
HTTPS://GITHUB.COM/GEFYMARCOS/MARVEL-REACT