Tutorial ReactJS para iniciantes
O que รฉ ReactJS?
ReactJS รฉ um front-end de cรณdigo aberto JavaBiblioteca de scripts para construรงรฃo de interfaces de usuรกrio. ReactJS รฉ mantido pelo Facebook e por uma comunidade de desenvolvedores e empresas individuais. ร amplamente utilizado como base na construรงรฃo de sites de pรกgina รบnica e aplicativos mรณveis. ร muito fรกcil de usar e permite aos usuรกrios criar componentes de UI reutilizรกveis.
Recursos do ReactJS
JSX: JSX รฉ uma extensรฃo do javascript. Embora nรฃo seja obrigatรณrio usar JSX no react, รฉ um dos bons recursos e fรกcil de usar.
Componentes: os componentes sรฃo como funรงรตes javascript puras que ajudam a tornar o cรณdigo mais fรกcil, dividindo a lรณgica em cรณdigo independente reutilizรกvel. Podemos usar componentes como funรงรตes e componentes como classes. Os componentes tambรฉm possuem um estado, adereรงos que facilitam a vida. Dentro de uma classe, o estado de cada um dos adereรงos รฉ mantido.
DOM virtual: O React cria um dom virtual, ou seja, um cache de estrutura de dados na memรณria. Somente as alteraรงรตes finais do DOM foram atualizadas posteriormente no DOM do navegador.
Javascript Expressรตes: Expressรตes JS podem ser usadas nos arquivos jsx usando chaves, por exemplo {}.
Vantagens do ReactJS
Aqui estรฃo vantagens/benefรญcios importantes de usar ReactJS:
- ReactJS usa dom virtual que faz uso do cache de estrutura de dados na memรณria, e apenas as alteraรงรตes finais sรฃo atualizadas no dom do navegador. Isso torna o aplicativo mais rรกpido.
- Vocรช pode criar componentes de sua escolha usando o recurso de componente react. Os componentes podem ser reutilizados e tambรฉm รบteis na manutenรงรฃo do cรณdigo.
- Reactjs รฉ uma biblioteca javascript de cรณdigo aberto, por isso รฉ fรกcil de comeรงar.
- ReactJS se tornou muito popular em um curto espaรงo de tempo e รฉ mantido pelo Facebook e Instagram. ร usado por muitas empresas famosas como Apple, Netflix, etc.
- O Facebook mantรฉm ReactJS, a biblioteca, por isso รฉ bem mantida e atualizada.
- ReactJS pode ser usado para desenvolver UI rica para aplicativos desktop e mรณveis.
- Fรกcil de depurar e testar, pois a maior parte da codificaรงรฃo รฉ feita em Javascript em vez de em HTML.
Desvantagens do ReactJS
Aqui estรฃo os contras/desvantagens de usar ReactJS:
- A maior parte do cรณdigo รฉ escrita em JSX, ou seja, Html e css fazem parte do javascript, pode ser bastante confuso jรก que a maioria dos outros frameworks preferem manter o Html separado do cรณdigo javascript.
- O tamanho do arquivo do ReactJS รฉ grande.
Usando ReactJS do CDN
Para comeรงar a trabalhar com o react, precisamos primeiro instalar o reactjs. Vocรช pode facilmente comeรงar a usar o reactjs usando os arquivos javascript CDN, conforme mostrado abaixo.
Vรก para o site oficial do reactjs para obter os links do CDN, ou seja, https://reactjs.org/docs/cdn-links.html e vocรช obterรก os arquivos necessรกrios para explicar a imagem a seguir.
Para desenvolvedores
<script crossorigin src="https://unpkg.com/react@version/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@version/umd/react-dom.development.js"></script>
Para produรงรฃo
<script crossorigin src="https://unpkg.com/react@version/umd/react.production.min.js"></script> <script crossorigin src="https://unpkg.com/react-dom@version/umd/react-dom.production.min.js"></script>
Substituir versรฃo com a versรฃo mais recente do react para react-development.js e react-dom.developement.js. Vocรช pode hospedar os arquivos para comeรงar a trabalhar com reactjs.
Caso vocรช esteja planejando usar os arquivos CDN, certifique-se de manter o atributo de origem cruzada, para evitar problemas de domรญnio cruzado. O cรณdigo Reactjs nรฃo pode ser executado diretamente no navegador e precisa ser convertido usando Babel para javascript antes de ser executado no navegador.
Aqui estรก o script BabelJS que pode ser usado:
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
Aqui estรก o exemplo funcional do ReactJS usando arquivos cdn e script babeljs.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello World</title>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>
<body>
<div id="app"></div>
<script type="text/babel">
ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
document.getElementById('app')
);
</script>
</body>
</html>
Saรญda:
Entraremos em detalhes do cรณdigo no prรณximo capรญtulo, vamos ver como trabalhar aqui com arquivos CDN. Diz-se que usar o script babel diretamente nรฃo รฉ uma boa prรกtica, e os novatos podem usรก-lo apenas para aprender reactjs por enquanto. Na produรงรฃo, vocรช terรก que instalar o react usando o pacote npm.
Usando pacotes NPM
Certifique-se de ter o nodejs instalado. Se nรฃo estiver instalado, siga este tutorial para nodejs (https://www.guru99.com/node-js-tutorial.html) instalaรงรฃo.
Depois de instalar o nodejs, crie uma pasta reactproj/.
Para comeรงar com a configuraรงรฃo do projeto, execute o comando inicializaรงรฃo npm.
Esta serรก a aparรชncia da estrutura de pastas:
reactproj\ package.json
Agora vamos instalar os pacotes que precisamos.
Aqui estรก a lista de pacotes para reactjs:
npm install react --save-dev npm install react-dom --save-dev npm install react-scripts --save-dev
Abra o prompt de comando e execute os comandos acima dentro da pasta reactproj/.
Crie uma pasta src / onde todo o cรณdigo js virรก nessa pasta. Todo o cรณdigo do projeto reactjs estarรก disponรญvel na pasta src/. Crie um arquivo index.js e adicione import react e react-dom, conforme mostrado abaixo.
index.js
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
document.getElementById('root')
);
Devolvemos o cรณdigo bรกsico para reactjs. Explicaremos os detalhes no prรณximo capรญtulo. Queremos exibir Olรก, dos tutoriais do Guru99 e o mesmo รฉ dado ao elemento dom com id โrootโ. Ele รฉ retirado do arquivo index.html, que รฉ o arquivo inicial, conforme mostrado abaixo.
Crie uma pasta public/ e adicione index.html conforme mostrado abaixo
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>ReactJS Demo</title>
</head>
<body>
<div id = "root"></div>
</body>
</html>
O pacote react-scripts se encarregarรก de compilar o cรณdigo e iniciar o servidor para exibir o arquivo html, ou seja, index.html. Vocรช precisa adicionar o comando em package.json que cuidarรก do uso de react-scripts para compilar o cรณdigo e iniciar o servidor conforme mostrado abaixo:
"scripts": {
"start": "react-scripts start"
}
Depois de instalar todos os pacotes e adicionar o comando acima, o package.json final รฉ o seguinte:
Pacote.json
{
"name": "reactproj",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "react-scripts start"
},
"author": "",
"license": "ISC",
"devDependencies": {
"react": "^16.9.0",
"react-dom": "^16.9.0",
"react-scripts": "^3.1.1"
}
}
Para comeรงar a testar o reactjs, execute o comando
npm run start
C:\reactproj>npm run start > reactproj@1.0.0 start C:\reactproj > react-scripts start
Ele abrirรก o navegador com URL http://localhost:3000/ como mostrado abaixo:
public / index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>ReactJS Demo</title>
</head>
<body>
<div id = "root"></div>
</body>
</html>
Tambรฉm usaremos o mesmo processo para executar os arquivos javascript nos prรณximos capรญtulos. Adicione todos os seus arquivos js e .jsx na pasta src/. A estrutura do arquivo serรก a seguinte:
reatproj/
src/
index.js
node_modules/
public/
index.html
package.json
Como criar a configuraรงรฃo do seu primeiro projeto React
Aqui estรก um guia passo a passo neste tutorial ReactJS para comeรงar com o primeiro aplicativo React.
Passo 1) Importe os pacotes react.
1. Para comeรงar com ReactJS, precisamos primeiro importar os pacotes react da seguinte maneira.
import React from 'react'; import ReactDOM from 'react-dom';
2. Salve o arquivo como index.js na pasta src/
Passo 2) Escreva cรณdigo simples.
Escreveremos um cรณdigo simples neste tutorial React JS, onde exibiremos a mensagem โOlรก, dos tutoriais do Guru99!โ
ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
document.getElementById('root')
);
ReactDOM.render irรก adicionar o tag para o elemento com id root. Aqui estรก o arquivo html que estamos tendo:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>ReactJS Demo</title>
</head>
<body>
<div id = "root"></div>
</body>
</html>
Passo 3) Compile o cรณdigo.
A seguir neste tutorial React.js, precisamos compilar o cรณdigo para obter a saรญda no navegador.
Aqui estรก a estrutura de pastas:
reactproj/
node_modules/
src/
index.js
package.json
public/
index.html
Adicionamos os comandos para compilar o arquivo final em package.json da seguinte forma:
"scripts": {
"start": "react-scripts start"
},
Para compilar o arquivo final execute o seguinte comando:
npm run start
Quando vocรช executa o comando acima, ele irรก compilar os arquivos e notificรก-lo se houver algum erro, se tudo parecer bem, ele abrirรก o navegador e executarรก o arquivo index.html em http://localhost:3000/index.html
Comando: npm run start:
C:\reactproj>npm run start > reactproj@1.0.0 start C:\reactproj > react-scripts start
Passo 4) Verifique a saรญda.
A URL http://localhost:3000 serรก aberto no navegador assim que o cรณdigo for compilado conforme mostrado abaixo:
O que รฉ JSX?
JSX รฉ uma extensรฃo para javascript. ร um script de template onde vocรช terรก o poder de usar HTML e Javascript juntos.
Aqui estรก um exemplo simples de cรณdigo JSX.
const h1tag = "<h1>Hello, from Guru99 Tutorials!</h1>";
Por que precisamos de JSX no React?
Para uma UI, precisamos de HTML, e cada elemento no dom terรก eventos a serem manipulados, mudanรงas de estado, etc.
No caso do React, permite utilizar Html e javascript no mesmo arquivo e cuidar das mudanรงas de estado do dom de forma eficiente.
Expressรตes em JSX
Aqui estรก um exemplo simples de como usar expressรตes em JSX.
Nos exemplos anteriores do ReactJS, escrevemos algo como:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
document.getElementById('root')
);
Agora iremos alterar o cรณdigo acima para adicionar expressรตes. As expressรตes sรฃo usadas entre chaves {} e sรฃo expandidas durante o tempo de execuรงรฃo. As expressรตes em react sรฃo iguais ร s expressรตes javascript.
index.js
import React from 'react';
import ReactDOM from 'react-dom';
const display = "Hello, from Guru99 Tutorials!";
const h1tag = "<h1>{display}</h1>";
ReactDOM.render(
h1tag,
document.getElementById('root')
);
Vamos agora testar o mesmo no navegador.
Vocรช pode ver que a expressรฃo {display} nรฃo foi substituรญda. O React nรฃo sabe o que fazer quando uma expressรฃo รฉ usada dentro do arquivo .js.
Vamos agora adicionar alteraรงรตes e criar um arquivo .jsx, conforme mostrado abaixo:
teste.jsx
import React from 'react';
import ReactDOM from 'react-dom';
const display = "Hello, to Guru99 Tutorials";
const h1tag =<h1>{display}</h1>;
export default h1tag;
Adicionamos o cรณdigo necessรกrio e usaremos o arquivo text.jsx em index.js.Queremos o h1tag variรกvel a ser usada dentro do script.js, para que a mesma seja exportada conforme mostrado acima no test.jsx
Aqui estรก o cรณdigo modificado em index.js
import React from 'react';
import ReactDOM from 'react-dom';
import h1tag from './test.jsx';
ReactDOM.render(
h1tag,
document.getElementById('root')
);
Para usar test.jsx em index.js, temos que importรก-lo primeiro, conforme mostrado abaixo:
import h1tag from './test.jsx';
Podemos usar o h1tag agora no ReactDOM.render conforme mostrado abaixo:
ReactDOM.render(
h1tag,
document.getElementById('root')
);
Aqui estรก o resultado quando verificamos o mesmo no navegador:
O que sรฃo componentes no ReactJS?
Os componentes sรฃo como funรงรตes javascript puras que ajudam a tornar o cรณdigo mais fรกcil, dividindo a lรณgica em cรณdigo independente reutilizรกvel.
Componentes como funรงรตes
teste.jsx
import React from 'react';
import ReactDOM from 'react-dom';
function Hello() {
return <h1>Hello, from Guru99 Tutorials!</h1>;
}
const Hello_comp = <Hello />;
export default Hello_comp;
Criamos uma funรงรฃo chamada Olรก que retornou a tag h1 conforme mostrado acima. O nome da funรงรฃo atua como um elemento, conforme mostrado abaixo:
const Hello_comp = <Hello />; export default Hello_comp;
O componente Olรก รฉ usado como uma tag HTML, ou seja, e atribuรญdo a Olรก_comp variรกvel e o mesmo รฉ exportado usando export.
Vamos agora usar este componente no arquivo index.js conforme mostrado abaixo:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './test.jsx';
ReactDOM.render(
Hello_comp,
document.getElementById('root')
);
Aqui estรก a saรญda no navegador:
Classe como componente
Aqui estรก um exemplo de ReactJS que usa uma classe como componente.
teste.jsx
import React from 'react';
import ReactDOM from 'react-dom';
class Hello extends React. Component {
render() {
return <h1>Hello, from Guru99 Tutorials!</h1>;
}
}
export default Hello;
Podemos usar o componente Hello no arquivo index.js da seguinte maneira:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';
ReactDOM.render(
<Hello />,
document.getElementById('root')
);
O componente Hello รฉ usado como uma tag HTML, ou seja, .
Aqui estรก o resultado do mesmo.
O que รฉ um estado no ReactJS?
Um estado รฉ um objeto javascript semelhante a adereรงos que possuem dados para serem usados โโcom a renderizaรงรฃo do reactjs. Os dados de estado sรฃo um objeto privado e sรฃo usados โโem componentes dentro de uma classe.
Exemplo de Estado
Aqui estรก um exemplo prรกtico de como usar o estado dentro de uma classe.
teste.jsx
import React from 'react';
import ReactDOM from 'react-dom';
class Hello extends React.Component {
constructor(props) {
super(props);
this.state = {
msg: "Hello, from Guru99 Tutorials!"
}
}
render() {
return <h1>{this.state.msg}</h1>;
}
}
export default Hello;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';
ReactDOM.render(
<Hello />,
document.getElementById('root')
);
Isto รฉ o que obtemos quando testamos no navegador:
O que sรฃo acessรณrios no ReactJS?
Props sรฃo propriedades a serem usadas dentro de um componente. Eles atuam como objetos globais ou variรกveis โโque podem ser usadas dentro do Componente.
Adereรงos para componente de funรงรฃo
Aqui estรก um exemplo de passagem de adereรงos para um componente de funรงรฃo.
import React from 'react';
import ReactDOM from 'react-dom';
function Hello(props) {
return <h1>{props.msg}</h1>;
}
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;
Como mostrado acima, adicionamos msg atribuir a Componente. O mesmo pode ser acessado como adereรงos dentro da funรงรฃo Hello, que รฉ um objeto que terรก o msg detalhes do atributo, e o mesmo รฉ usado como uma expressรฃo.
O componente รฉ usado em index.js da seguinte forma:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './test.jsx';
ReactDOM.render(
Hello_comp,
document.getElementById('root')
);
Aqui estรก a saรญda no navegador:
Adereรงos para componente de classe
Para acessar os adereรงos de uma classe podemos fazer da seguinte maneira:
teste.jsx
import React from 'react';
import ReactDOM from 'react-dom';
class Hello extends React.Component {
render() {
return <h1>{this.props.msg}</h1>;
}
}
export default Hello;
O processo de msg O atributo รฉ passado para o componente em index.js da seguinte forma:
import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';
ReactDOM.render(
<Hello msg="Hello, from Guru99 Tutorials!" />,
document.getElementById('root')
);
Esta รฉ a saรญda no navegador:
Verifique tambรฉm: - Tutorial AngularJS para iniciantes: Aprenda AngularJS passo a passo
Ciclo de vida de um componente
O ciclo de vida de um componente รฉ dividido em estรกgios de inicializaรงรฃo, montagem, atualizaรงรฃo e desmontagem.
Aqui estรก uma explicaรงรฃo detalhada sobre cada componente.
Um componente no reactjs possui os seguintes estรกgios:
Inicializaรงรฃo: Este รฉ o primeiro estรกgio do ciclo de vida do componente.
Aqui terรก os adereรงos padrรฃo e o estado no nรญvel inicial.
Montagem: Nesta fase, o Componente รฉ renderizado dentro do dom. Estamos expostos aos seguintes mรฉtodos no estado de montagem.
- componentDidMount(): Tambรฉm รฉ chamado quando o componente acaba de ser adicionado ao dom.
- render(): Vocรช tem este mรฉtodo para todos os componentes criados. Ele retorna o nรณ HTML.
Atualizar: neste estado, o dom รฉ interagido por um usuรกrio e atualizado. Por exemplo, vocรช insere algo na caixa de texto para que as propriedades do estado sejam atualizadas.
A seguir estรฃo os mรฉtodos disponรญveis no estado de atualizaรงรฃo:
- shouldComponentUpdate(): chamado quando o componente รฉ atualizado.
- componentDidUpdate() : apรณs a atualizaรงรฃo do componente.
Desmontando: esse estado entra em cena quando o componente nรฃo รฉ necessรกrio ou removido.
A seguir estรฃo os mรฉtodos disponรญveis no estado de desmontagem:
Componente willUnmount(): chamado quando o Componente รฉ removido ou destruรญdo.
Exemplo de Trabalho
Aqui estรก um exemplo prรกtico que mostra os mรฉtodos chamados em cada estado.
Exemplo: complife.jsx
import React from 'react';
import ReactDOM from 'react-dom';
class COMP_LIFE extends React.Component {
constructor(props) {
super(props);
this.state = {name: ''};
this.UpdateName = this.UpdateName.bind(this);
this.testclick = this.testclick.bind(this);
}
UpdateName(event) {
this.setState({name: event.target.value});
}
testclick(event) {
alert("The name entered is: "+ this.state.name);
}
componentDidMount() {
console.log('Mounting State : calling method componentDidMount');
}
shouldComponentUpdate() {
console.log('Update State : calling method shouldComponentUpdate');
return true;
}
componentDidUpdate() {
console.log('Update State : calling method componentDidUpdate')
}
componentWillUnmount() {
console.log('UnMounting State : calling method componentWillUnmount');
}
render() {
return (
<div>
Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>
<h2>{this.state.name}</h2>
<input type="button" value="Click Here" onClick={this.testclick} />
</div>
);
}
}
export default COMP_LIFE;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import COMP_LIFE from './complife.jsx';
ReactDOM.render(
<COMP_LIFE />,
document.getElementById('root')
);
Quando vocรช verifica a saรญda no navegador
No console do navegador vocรช obtรฉm:
Quando o usuรกrio entra na caixa de texto:
No console as seguintes mensagens sรฃo exibidas:
Trabalhando com Formulรกrios
Em elementos de entrada HTML do reactjs como , e <select /> tem seu prรณprio estado e precisa ser atualizado quando o usuรกrio interage usando o mรฉtodo setState().
Neste capรญtulo, veremos como trabalhar com formulรกrios no reactjs.
Aqui estรก um exemplo prรกtico:
formulรกrio.jsx
import React from 'react';
import ReactDOM from 'react-dom';
class Form extends React.Component {
constructor(props) {
super(props);
this.state = {name: ''};
this.UpdateName = this.UpdateName.bind(this);
this.formSubmit = this.formSubmit.bind(this);
}
UpdateName(event) {
this.setState({name: event.target.value});
}
formSubmit(event) {
alert("The name entered is: "+ this.state.name);
}
render() {
return (
<form>
Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>
<h2>{this.state.name}</h2>
<input type="submit" value="Submit" onClick={this.formSubmit} />
</form>
);
}
}
export default Form;
Para os campos de entrada, precisamos manter o estado, entรฃo para isso o react fornece um mรฉtodo especial chamado definir Estado, o que ajuda a manter o estado sempre que hรก uma mudanรงa.
Usamos os eventos onChange e onClick na caixa de texto e no botรฃo enviar. Quando o usuรกrio entra dentro do textbox o evento onChange รฉ chamado, e o campo name dentro do objeto state state รฉ atualizado conforme mostrado abaixo:
UpdateName(event) {
this.setState({name: event.target.value});
}
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Form from './form.jsx';
ReactDOM.render(
<Form />,
document.getElementById('root')
);
A saรญda no navegador รฉ a seguinte:
Etapa 1) Digite seu nome na caixa de texto:
- Clique no botรฃo enviar
Trabalhando com eventos no ReactJS
Trabalhar com eventos em reactjs รฉ o mesmo que vocรช faria em javascript. Vocรช pode usar todos os manipuladores de eventos usados โโem javascript. O mรฉtodo setState() รฉ usado para atualizar o estado quando o usuรกrio interage com qualquer elemento HTML.
Aqui estรก um exemplo prรกtico de como usar eventos em reactjs.
eventos.jsx
import React from 'react';
import ReactDOM from 'react-dom';
class EventTest extends React.Component {
constructor(props) {
super(props);
this.state = {name: ''};
this.UpdateName = this.UpdateName.bind(this);
this.testclick = this.testclick.bind(this);
}
UpdateName(event) {
this.setState({name: event.target.value});
}
testclick(event) {
alert("The name entered is: "+ this.state.name);
}
render() {
return (
<div>
Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>
<h2>{this.state.name}</h2>
<input type="button" value="Click Here" onClick={this.testclick} />
</div>
);
}
}
export default EventTest;
Para os campos de entrada, precisamos manter o estado, entรฃo para isso o react fornece um mรฉtodo especial chamado definir Estado, o que ajuda a manter o estado sempre que hรก uma mudanรงa.
Usamos eventos em mudanรงa e ferrolhos de sobrepor podem ser usados para proteger uma porta de embutir pelo lado de fora. Alguns kits de corrente de seguranรงa tambรฉm permitem travamento externo com chave ou botรฃo giratรณrio. onClick na caixa de texto e no botรฃo. Quando o usuรกrio entra dentro da caixa de texto o em mudanรงa O evento รฉ chamado e o campo de nome dentro do objeto state state รฉ atualizado conforme mostrado abaixo:
UpdateName(event) {
this.setState({name: event.target.value});
}
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import EventTest from './events.jsx';
ReactDOM.render(
<EventTest />,
document.getElementById('root')
);
Aqui estรก a saรญda no navegador:
Quando um usuรกrio insere o nome:
Quando o usuรกrio clica no botรฃo Clique Aqui:
Trabalhando com CSS Inline no ReactJS
Daremos uma olhada em um exemplo prรกtico para entender o funcionamento do CSS inline no reactjs.
adicionar estilo.jsx
import React from 'react';
import ReactDOM from 'react-dom';
const h1Style = {
color: 'red'
};
function Hello(props) {
return <h1 style={h1Style}>{props.msg}</h1>;
}
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;
Eu adicionei o estilo color: 'red' ร tag h1.
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './addstyle.jsx';
ReactDOM.render(
Hello_comp,
document.getElementById('root')
);
A saรญda no navegador รฉ a seguinte:
Vocรช pode criar um objeto do estilo que desejar no elemento e usar uma expressรฃo para adicionar estilo, conforme mostrado no exemplo acima.
Trabalhando com CSS externo no ReactJS
Vamos criar um css externo, para isso crie uma pasta css/ e adicione style.css nela.
style.css
.h1tag {
color:red;
}
Adicione o style.css ao seu arquivo index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>ReactJS Demo</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id = "root"></div>
<script src = "out/script.min.js"></script>
</body>
</html>
Agora vamos adicionar a classe ร tag h1 no arquivo .jsx
adicionar estilo.jsx
import React from 'react';
import ReactDOM from 'react-dom';
let classforh1 = 'h1tag';
function Hello(props) {
return <h1 className={classforh1}>{props.msg}</h1>;
}
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './addstyle.jsx';
ReactDOM.render(
Hello_comp,
document.getElementById('root')
);
O atributo className recebe os detalhes da classe. Agora vamos testar no navegador.
Isto รฉ o que vocรช vรช quando inspeciona a tag h1 no navegador:
Vocรช pode ver que class=โh1tagโ foi adicionado com sucesso ร tag h1.
Resumo
- ReactJS รฉ um front-end de cรณdigo aberto JavaBiblioteca de scripts para construir a interface do usuรกrio. ร mantida pelo Facebook e usada por muitas empresas hoje para desenvolvimento de UI.
- Os principais recursos do ReactJS incluem JSX, componentes (componentes funcionais e componentes baseados em classe), o ciclo de vida de um componente, adereรงos e suporte de estado para um componente, trabalhando com expressรตes javascript.
- A configuraรงรฃo do projeto ReactJS รฉ explicada usando arquivos CDN e tambรฉm usando pacotes npm para construir o projeto.
- JSX รฉ uma extensรฃo do javascript. ร um script de modelo onde vocรช terรก o poder de usar HTML e javascript juntos.
- Os componentes sรฃo como funรงรตes javascript puras que ajudam a tornar o cรณdigo mais fรกcil, dividindo a lรณgica em cรณdigo independente reutilizรกvel.
- Um estado รฉ um objeto javascript semelhante a adereรงos que possuem dados para serem usados โโcom a renderizaรงรฃo do reactjs. Os dados de estado sรฃo um objeto privado e sรฃo usados โโem componentes dentro de uma classe.
- Props sรฃo propriedades a serem usadas dentro de um componente.
- O ciclo de vida de um componente รฉ dividido em estรกgios de inicializaรงรฃo, montagem, atualizaรงรฃo e desmontagem.
- Em elementos de entrada HTML do reactjs como , e <select /> tem seu prรณprio estado e precisa ser atualizado quando o usuรกrio interage usando o mรฉtodo setState().
- Trabalhar com eventos em reactjs รฉ o mesmo que vocรช faria em javascript. Vocรช pode usar todos os manipuladores de eventos usados โโem javascript. O mรฉtodo setState() รฉ usado para atualizar o estado quando o usuรกrio interage com qualquer elemento HTML.
- ReactJS permite que vocรช trabalhe com CSS externo e tambรฉm com CSS embutido usando expressรฃo javascript.
Verifique tambรฉm: - As 70 principais perguntas e respostas da entrevista React (atualizado)























