<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rilton Bispo</title>
    <description>The latest articles on DEV Community by Rilton Bispo (@riltonbispo).</description>
    <link>https://dev.to/riltonbispo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1019866%2F85405943-1026-4397-8c8a-9c9328f55655.jpeg</url>
      <title>DEV Community: Rilton Bispo</title>
      <link>https://dev.to/riltonbispo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/riltonbispo"/>
    <language>en</language>
    <item>
      <title>Axios em React: como fazer requisições HTTP de forma fácil</title>
      <dc:creator>Rilton Bispo</dc:creator>
      <pubDate>Fri, 31 Mar 2023 02:19:05 +0000</pubDate>
      <link>https://dev.to/riltonbispo/axios-em-react-como-fazer-requisicoes-http-de-forma-facil-5bpi</link>
      <guid>https://dev.to/riltonbispo/axios-em-react-como-fazer-requisicoes-http-de-forma-facil-5bpi</guid>
      <description>&lt;h2&gt;
  
  
  AXIOS
&lt;/h2&gt;

&lt;p&gt;Axios é uma biblioteca de requisições HTTP no React. Para usá-la, primeiro você precisa instalá-la com o seguinte comando:&lt;br&gt;
&lt;code&gt;npm install axios&lt;/code&gt;&lt;br&gt;
Em seguida, você pode importá-la no seu projeto:&lt;br&gt;
&lt;code&gt;import axios from ‘axios’;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Para fazer uma requisição GET, utilize o seguinte código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;getAllPosts: async () =&amp;gt; {
  let response = await axios.get(`${BASE}`)
  return response.data
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para fazer uma requisição POST, utilize o seguinte código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;addNewPost = async (title, body, userId) =&amp;gt; {
  let response = await axios.post(`${BASE}/posts`, {
    title,
    body,
    userId
  })
  return response.data
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;É possível criar instâncias personalizadas do Axios com configurações específicas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const http = axios.create({
  baseURL: ‘https://jsonplaceholder.typicode.com’
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para fazer uma requisição GET utilizando a instância personalizada, utilize o seguinte código:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;getAllPosts: async () =&amp;gt; {
  let response = await http.get(`/posts`)
  return response.data
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Simplificando a navegação em React com rotas</title>
      <dc:creator>Rilton Bispo</dc:creator>
      <pubDate>Fri, 31 Mar 2023 02:18:01 +0000</pubDate>
      <link>https://dev.to/riltonbispo/simplificando-a-navegacao-em-react-com-rotas-3f69</link>
      <guid>https://dev.to/riltonbispo/simplificando-a-navegacao-em-react-com-rotas-3f69</guid>
      <description>&lt;h4&gt;
  
  
  React Router
&lt;/h4&gt;

&lt;p&gt;Geralmente fazemos as configurações dentro do index.tsx, para ter acesso aos recursos de rotas precisamos encapsular tudo dentro do&lt;code&gt;BrowserRouter&lt;/code&gt;&lt;/p&gt;




&lt;h6&gt;
  
  
  Route
&lt;/h6&gt;

&lt;p&gt;No Route colocamos um atributo path="/", que é o endereço da rota apos o endereço da pagina. E tambem colocamos o element={}.&lt;/p&gt;




&lt;h6&gt;
  
  
  404
&lt;/h6&gt;

&lt;p&gt;Para criar rota de 404 colocamos path'*' ao final de todas as rotas&lt;/p&gt;




&lt;h6&gt;
  
  
  Link
&lt;/h6&gt;

&lt;p&gt;Para uma navegação melhor dentro do site utilizamos o componente Link para direcionar as paginas, colocamos a propriedade to:'/'.&lt;/p&gt;




&lt;h6&gt;
  
  
  Rota Dinamica
&lt;/h6&gt;

&lt;p&gt;Podemos ter uma rota dinamica como camos ':' antes da variavel dinamica, isso é chamado de parametro. Ex: &lt;code&gt;path: '/album/:albumId'&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Podemos capturar esse parametro usando o Hook useParams&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { albumId } = useParams&amp;lt;{ albumId: string }&amp;gt;();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;É recomendado uar o ? antes do parameto pois isso ja fara uma verificação.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h6&gt;
  
  
  useNavigate
&lt;/h6&gt;

&lt;p&gt;É um hook usado geralmente quando queremos voltar uma pagina.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const navigate = useNavigate()

const handleBackButton = () =&amp;gt;{
 navigate(-1)
}

&amp;lt;button onClick={handleBackButton}&amp;gt;voltar&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h6&gt;
  
  
  Query String ?
&lt;/h6&gt;

&lt;p&gt;Query string é uma parte de uma URL que contém dados que são enviados do cliente.&lt;br&gt;
&lt;code&gt;https://www.example.com/search?q=apple&amp;amp;category=fruits&lt;/code&gt;&lt;br&gt;
Para capturar os queryString usamos o hook useSearchParams,&lt;br&gt;
searchParams.get('q')&lt;/p&gt;




&lt;h6&gt;
  
  
  Rotas privadas
&lt;/h6&gt;

&lt;p&gt;Para criar uma autentificação nas rotas privadas, primeiro criamos um componente que fara esse autentificação, e colocamos o componente que vai ser renderizado como um children, se a validação passar retornamos o children se nao retornamos um null.&lt;br&gt;
&lt;code&gt;element={&amp;lt;Autentificacao&amp;gt;&amp;lt;Componente /&amp;gt;&amp;lt;/Autentificacao&amp;gt;}&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Aprenda a usar hooks em React em poucos minutos</title>
      <dc:creator>Rilton Bispo</dc:creator>
      <pubDate>Fri, 31 Mar 2023 02:15:55 +0000</pubDate>
      <link>https://dev.to/riltonbispo/aprenda-a-usar-hooks-em-react-em-poucos-minutos-2l4k</link>
      <guid>https://dev.to/riltonbispo/aprenda-a-usar-hooks-em-react-em-poucos-minutos-2l4k</guid>
      <description>&lt;h2&gt;
  
  
  HOOKS
&lt;/h2&gt;

&lt;p&gt;Hooks são códigos prontos que simplificam o desenvolvimento. O estado é uma informação que o componente usa.&lt;/p&gt;




&lt;h6&gt;
  
  
  useState
&lt;/h6&gt;

&lt;p&gt;O &lt;code&gt;useState&lt;/code&gt; é um hook do React que permite manipular o estado de um componente de maneira fácil.&lt;/p&gt;




&lt;h6&gt;
  
  
  State Lift
&lt;/h6&gt;




&lt;h6&gt;
  
  
  useEfects
&lt;/h6&gt;

&lt;p&gt;O hook &lt;code&gt;useEffect&lt;/code&gt; é usado para monitorar as alterações em um elemento. Ele recebe como parâmetro uma função e um array. A função contém o código que será executado quando o elemento for atualizado ou criado, e o array inclui o elemento que será monitorado. Se houver alguma mudança, o hook &lt;code&gt;useEffect&lt;/code&gt; irá reagir e executar a função correspondente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useEffect(() =&amp;gt; {
  document.title = `Você clicou ${count} vezes`;
}, [count]);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h6&gt;
  
  
  useReducer
&lt;/h6&gt;

&lt;p&gt;O Reducer é uma alternativa ao useState, é recomendado usar quando vamos manipular listas, objetos...&lt;br&gt;
&lt;code&gt;const [state, dispatch] = useReducer(reducer, initialState)&lt;/code&gt;&lt;/p&gt;
&lt;h5&gt;
  
  
  state:
&lt;/h5&gt;

&lt;p&gt;é aonde temos acesso as informações&lt;/p&gt;
&lt;h5&gt;
  
  
  dispatch:
&lt;/h5&gt;

&lt;p&gt;é uma função, que quando executada recebe como parametro um objeto com um type, que indica a ação a ser feita dentro do reducer&lt;br&gt;
&lt;code&gt;&amp;lt;button onClick={() =&amp;gt; dispatch({type: 'ADD'})}&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h5&gt;
  
  
  useReducer:
&lt;/h5&gt;

&lt;p&gt;receber como parametro 1 função e os valores iniciais&lt;/p&gt;
&lt;h5&gt;
  
  
  reducer:
&lt;/h5&gt;

&lt;p&gt;sempre vai receber 2 parametros, 1° o valor atual do reducer(state); 2° a função que vai executar(action)&lt;br&gt;
&lt;code&gt;const reducer = (state, action) =&amp;gt; {}&lt;/code&gt;&lt;br&gt;
a função reducer faz as alterações com base no action, e no final retorna o novo state.&lt;/p&gt;

&lt;p&gt;para fazer as alterações utilizamos o switch da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;switch(action.type){
 case: 'ADD':
  return ... 
 break
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;podemos organizar nossos reducers em aquivos diferentres, para fazer isso criamos um hook proprio aonde neel é criado o useReducer e todas as configurações, ao final damos um:&lt;br&gt;
&lt;code&gt;return useReducer(reducer, initialState)&lt;/code&gt;&lt;br&gt;
para usa-lo basta importar dentro do seu componente e usar:&lt;br&gt;
&lt;code&gt;const [state, dispatch] = useCriado()&lt;/code&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  Payload:
&lt;/h5&gt;

&lt;p&gt;Usamos qunado quremos enviar dados para o action&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Transforme seu projeto React com os estilos certos</title>
      <dc:creator>Rilton Bispo</dc:creator>
      <pubDate>Fri, 31 Mar 2023 02:14:11 +0000</pubDate>
      <link>https://dev.to/riltonbispo/transforme-seu-projeto-react-com-os-estilos-certos-10eh</link>
      <guid>https://dev.to/riltonbispo/transforme-seu-projeto-react-com-os-estilos-certos-10eh</guid>
      <description>&lt;h2&gt;
  
  
  ESTILOS
&lt;/h2&gt;

&lt;p&gt;No React, o CSS pode ser adicionado globalmente na aplicação através do arquivo &lt;code&gt;index.css&lt;/code&gt;. Para estilizar componentes individualmente, pode-se usar o &lt;code&gt;CSSModules&lt;/code&gt;, incluindo o CSS dentro do componente.&lt;/p&gt;

&lt;h6&gt;Style Components&lt;/h6&gt;

&lt;p&gt;Style Components é uma biblioteca de estilo para componentes React. Ele permite a você escrever estilos CSS diretamente dentro dos seus componentes, tornando mais fácil manter a coesão entre estilo e lógica de componentes. Ao invés de escrever estilos em arquivos CSS separados, você pode definir estilos diretamente em suas classes de componentes e aplicá-los aos elementos renderizados. Style Components oferece uma sintaxe semelhante ao CSS, bem como recursos adicionais como variáveis, herança de estilo e animações.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install styled-components&lt;/code&gt;&lt;br&gt;
&lt;code&gt;npm install -D @types/styled-components&lt;/code&gt; para Ts&lt;/p&gt;

&lt;p&gt;importação styled components:&lt;br&gt;
&lt;code&gt;import styled from 'styled-components'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;usando styled components:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const container = styled.div`
 color: red
`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;&amp;lt;Container&amp;gt; Meu texto &amp;lt;/Container&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Uma das maneiras de usar o Styled Components é criando um arquivo &lt;code&gt;TypeScript&lt;/code&gt; com todos os estilos e importando-o em qualquer lugar que você deseja usá-los. Por exemplo: &lt;br&gt;
&lt;code&gt;import * as C from './AppStyles'&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;podemos passar props para o styled&lt;br&gt;
&lt;code&gt;&amp;lt;Button small &amp;gt; Meu botão &amp;lt;/Button&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export const Button = styled.button`
  /* ele verifica se o elemento tem a prop small  */
 font-size: ${(props)=&amp;gt; props.small ? '15px' : '30px' }
`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;no TypeScript precisamos definir os tipos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type ButtonProps = {
 bg: string
 small?: boolean
}

export const Button = styled.button&amp;lt;ButtonProps&amp;gt;`...`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Design Thinking: Pensando fora da caixa</title>
      <dc:creator>Rilton Bispo</dc:creator>
      <pubDate>Fri, 24 Mar 2023 21:51:35 +0000</pubDate>
      <link>https://dev.to/riltonbispo/design-thinking-pensando-fora-da-caixa-3e34</link>
      <guid>https://dev.to/riltonbispo/design-thinking-pensando-fora-da-caixa-3e34</guid>
      <description>&lt;h5&gt;
  
  
  UX e UI
&lt;/h5&gt;

&lt;p&gt;Antes de falar sobre Design Thinking, é necessário explicar o que é UX e UI.&lt;/p&gt;

&lt;h6&gt;
  
  
  UX (User Experience)
&lt;/h6&gt;

&lt;p&gt;UX (User Experience) é um estudo que se concentra na experiência do usuário com um produto ou serviço, desde quando ele começa a pensar em adquirir até depois de consumir. O UX designer é responsável por garantir a melhor experiência possível, trazendo valores importantes para o produto ou serviço. É fundamental garantir uma experiência positiva para o usuário, o que pode aumentar a satisfação e a fidelização do cliente.&lt;/p&gt;

&lt;h6&gt;
  
  
  UI (User Interface)
&lt;/h6&gt;

&lt;p&gt;UI (User Interface) se concentra em como o usuário interage com a interface do produto ou serviço, incluindo design gráfico, layout, tipografia e cores.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zq2dqanowdohhxk2ykt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zq2dqanowdohhxk2ykt.png" alt="UX/UI Design" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;





&lt;h3&gt; As 10 Heurísticas de Usabilidade de Interface de Jakob Nielsen  &lt;/h3&gt;

&lt;center&gt;&lt;b&gt;O que é usabilidade?&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/center&gt;

&lt;center&gt;
Usabilidade é uma medida de uso de um produto para alcançar determinado objetivo com certa eficácia e eficiência.
&lt;/center&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Heurísticas&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1° Sempre informar os usuários sobre o que está acontecendo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2° Falar o dialeto do seu usuário&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3° Dar controle e liberdade ao usuário&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4° Manter a consistência/padrão&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5° Eliminar as chances de erro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6° Não contar com a memória dos usuários&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7° Atender aos iniciantes e aos avançados&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8° Só apresentar o que é importante&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9° Ajudar usuários a se recuperar de erros&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10° Oferecer ajuda&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;center&gt;
 &lt;h3&gt; Metodologias de Design &lt;/h3&gt;
&lt;/center&gt;
&lt;h6&gt;
  
  
  Duplo diamante:
&lt;/h6&gt;

&lt;ol&gt;
&lt;li&gt;Fase de descoberta, onde reunimos o máximo de informações possíveis.&lt;/li&gt;
&lt;li&gt;Fase de definição de ideias.&lt;/li&gt;
&lt;li&gt;Fase de desenvolvimento.&lt;/li&gt;
&lt;li&gt;Fase de entrega.&lt;/li&gt;
&lt;/ol&gt;
&lt;h6&gt;
  
  
  IDEO.org:
&lt;/h6&gt;

&lt;ol&gt;
&lt;li&gt;Fase de inspiração, onde pesquisamos.&lt;/li&gt;
&lt;li&gt;Fase de ideação.&lt;/li&gt;
&lt;li&gt;Fase de implementação.&lt;/li&gt;
&lt;/ol&gt;
&lt;h6&gt;
  
  
  Design Thinking:
&lt;/h6&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8y30wubhkujp9yc8hr2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8y30wubhkujp9yc8hr2h.png" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Empatia:&lt;/em&gt;&lt;/strong&gt; É a fase em que pesquisamos as dores dos usuários, bem como informações sobre concorrentes e o mercado.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Definição:&lt;/strong&gt;&lt;/em&gt; É quando definimos claramente os problemas a serem tratados.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Ideação:&lt;/strong&gt;&lt;/em&gt; É a fase em que criamos e desenvolvemos ideias.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Prototipação:&lt;/strong&gt;&lt;/em&gt; É a fase em que criamos um protótipo com base nas principais ideias geradas.&lt;/p&gt;
&lt;/blockquote&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Implementação:&lt;/strong&gt;&lt;/em&gt; É quando testamos o protótipo com usuários reais.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;center&gt; &lt;b&gt;Por que aplicar Design Thinking?&lt;/b&gt; &lt;/center&gt;

&lt;center&gt;
Grandes empresas de tecnologia no Brasil e no mundo utilizam o Design Thinking por trazer uma ampla gama de informações, atividades e reduzir o tempo de produção, além de proporcionar uma interação com toda a equipe e ajudar a compreender melhor o público-alvo.
&lt;/center&gt;






&lt;h6&gt;
  
  
  Design Sprint:
&lt;/h6&gt;

&lt;p&gt;O Design Sprint é uma metodologia desenvolvida pelo Google, criada para testar e aplicar ideias em apenas cinco dias, com base no Design Thinking.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4hqfiaabr2jbeaep0ee.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4hqfiaabr2jbeaep0ee.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No geral, as metodologias têm como objetivo entender o problema, capturar informações, captar ideias, testar, repetir e é muito importante ter um time dinâmico.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Aprendendo React</title>
      <dc:creator>Rilton Bispo</dc:creator>
      <pubDate>Sat, 04 Feb 2023 19:16:58 +0000</pubDate>
      <link>https://dev.to/riltonbispo/aprendendo-react-1i5j</link>
      <guid>https://dev.to/riltonbispo/aprendendo-react-1i5j</guid>
      <description>&lt;p&gt;React é uma biblioteca amplamente utilizada para criação de interfaces, especialmente para construção de aplicações de única página (SPAs). Ele se baseia em componentes e usa JSX para renderizar HTML. É possível adicionar React a projetos já existentes.&lt;/p&gt;

&lt;h2&gt;
  
  
  JSX:
&lt;/h2&gt;

&lt;p&gt;JSX permite escrever HTML dentro do JavaScript e executar funções dentro dele. Valores podem ser inseridos em atributos de tags de forma dinâmica. No entanto, o retorno deve conter apenas um elemento-pai.&lt;/p&gt;




&lt;h2&gt;
  
  
  COMPONENTES:
&lt;/h2&gt;

&lt;p&gt;Os componentes permitem dividir a aplicação em partes distintas e são arquivos JSX. Por convenção, eles são adicionados a uma pasta chamada "components" e usam PascalCase como padrão de nomenclatura. Componentes também podem ser importados dentro de outros componentes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;para usar imagens no seu componente ele precisa ser importado&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h6&gt;Ciclo de vida&lt;/h6&gt;

&lt;p&gt;O ciclo de vida de um componente começa quando é criado na memória. Durante a renderização, o componente está "vivo". A cada alteração feita nele, um novo ciclo é iniciado. Por fim, o componente é removido quando o seu ciclo de vida chega ao fim.&lt;/p&gt;




&lt;h2&gt;
  
  
  INSTALAÇÃO COM VITE:
&lt;/h2&gt;

&lt;p&gt;A instalação com Vite cria um projeto React já configurado. É necessário ter o Node e o NPM instalados. Para criar o projeto, execute &lt;code&gt;npm create vite@latest&lt;/code&gt; depois rodamos o &lt;code&gt;npm i&lt;/code&gt;, para rodar a aplicação: &lt;code&gt;npm run dev&lt;/code&gt;. O ponto de partida da aplicação é o arquivo index.html, que contém o elemento raiz (id: root).&lt;/p&gt;




&lt;h2&gt;
  
  
  PROPS:
&lt;/h2&gt;

&lt;p&gt;As props são valores passados para os componentes e tornam-nos dinâmicos. Elas podem ser passadas como atributos HTML e, para componentes com múltiplas propriedades, é possível passar um objeto como parâmetro (por exemplo, {nome, idade, profissão}).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Welcome(props) {
  return &amp;lt;h1&amp;gt;Hello, {props.name}&amp;lt;/h1&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os tipos das props também podem ser definidos (para validações durante o desenvolvimento) através de um objeto propTypes dentro do componente. Valores padrão e a obrigatoriedade de uma propriedade também podem ser definidos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import PropTypes from 'prop-types';

class Greeting extends React.Component {
  render() {
    return (
      &amp;lt;h1&amp;gt;Hello, {this.props.name}&amp;lt;/h1&amp;gt;
    );
  }
}

Greeting.propTypes = {
  name: PropTypes.string
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h6&gt;Como fazer a conexão de um filho para o pai?&lt;/h6&gt;

&lt;p&gt;Você pode também transmitir métodos através de props. Dessa forma, um componente filho pode invocar um método do componente pai. Isto é realizado através de um evento, com a mesma sintaxe de props normais. Além disso, um componente pai pode ter vários métodos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  function meuEvento(){
    console.log(`Evento ativado`)
  }

  function segundoEvento(){
    console.log(`Evento desativado`)
  }

  &amp;lt;Button event={meuEvento} text="Ligar evento" /&amp;gt;
  &amp;lt;Button event={segundoEvento} text="Desativar evento" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Button(props){
  return &amp;lt;button onClick={props.event} &amp;gt;{props.text}&amp;lt;/button&amp;gt;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para passar informações de um componente filho para um componente pai no React, usamos parâmetros. Primeiro, definimos uma função no componente pai que irá manipular essas informações. Em seguida, chamamos essa função no componente filho e passamos os dados desejados como argumento. Dessa forma, conseguimos transmitir informações de forma precisa e controlada entre os componentes.&lt;/p&gt;

&lt;p&gt;pai:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const nomeFuncao = ( txt: string ) =&amp;gt;{
 alert(txt)
}

&amp;lt;Filho clickFn={ nomeFuncao } /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;filho:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;type Props = {
 clickFn: ( txt: string ) =&amp;gt; void 
}

export const Filho = ({ clickFn }: Props) =&amp;gt; {
 const outraFuncao() =&amp;gt;{
  clickFn('meu parametro')
 }

 // nao colocamos a função clickFn diretamente aqui porque 
 ela seria executada antes do evento acontecer
 &amp;lt;Button onClick={outraFuncao} /&amp;gt;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h6&gt;Prop Children&lt;/h6&gt;

&lt;p&gt;define aonde os elementos filhos que estão encapsulados no componente irão ficar&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Container(props) {
  return (
    &amp;lt;div&amp;gt;
      {props.children}
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  FRAGMENTES
&lt;/h2&gt;

&lt;p&gt;Os Fragmentos permitem criar componentes sem um elemento-pai, simplificando os nós do DOM. Eles são usados com uma tag vazia &lt;code&gt;&amp;lt;&amp;gt; &amp;lt;/&amp;gt;&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  EVENTOS NO REACT
&lt;/h2&gt;

&lt;p&gt;Eventos em React são semelhantes aos eventos do DOM, por exemplo o evento "click". Eles são vinculados a uma tag e uma lógica é atribuída ao evento através de um método criado no componente. É importante utilizar o método &lt;code&gt;preventDefault()&lt;/code&gt; sempre que se usa o evento &lt;code&gt;submit&lt;/code&gt;, pois ele impede que a execução padrão do evento seja executada e permite que o código logo abaixo seja executado.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;O &lt;code&gt;toggle&lt;/code&gt; é um termo usado quando uma ação pode ter resultados opostos ao ser executada. Por exemplo, ao clicar em um botão, ele pode alternar entre "ligado" e "desligado". A ideia é que a mesma ação gere resultados diferentes de acordo com o estado anterior. O toggle é amplamente utilizado em interfaces de usuário para alternar entre opções e configurações.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  RENDERIZAÇÃO
&lt;/h2&gt;

&lt;h6&gt;Renderização por condição&lt;/h6&gt;

&lt;p&gt;A renderização permite que você exiba um conteúdo baseado em uma condição, como um &lt;code&gt;if&lt;/code&gt; e &lt;code&gt;else&lt;/code&gt;. Para fazer isso, é preciso envolver o código com chaves &lt;code&gt;{}&lt;/code&gt;. O código dentro dessas chaves é executado como JavaScript. Além disso, é possível usar o &lt;code&gt;estate&lt;/code&gt; para criar as condições na renderização.&lt;/p&gt;

&lt;p&gt;Uma maneira mais simplificada de fazer condição no REACT é usando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{seuState &amp;amp;&amp;amp;(
  &amp;lt;div&amp;gt;
    &amp;lt;p&amp;gt;Sua renderização&amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;
)}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ele vai renderizar seu codigo caso o valor do state seja true&lt;/p&gt;

&lt;h6&gt;Renderização de listas&lt;/h6&gt;

&lt;p&gt;Em React, para renderizar listas, geralmente usamos um &lt;code&gt;array&lt;/code&gt; de objetos e o método &lt;code&gt;map&lt;/code&gt; para percorrê-los. É possível também combinar operadores condicionais com a renderização de listas, para exibir diferentes elementos de acordo com as condições.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{seuArray.length &amp;gt; 0 ? 
/* caso a condição for true: */ 
 (
  seuArray.map((item, index) =&amp;gt; &amp;lt;p key={index}&amp;gt;{item}&amp;lt;/p&amp;gt;)
 ) :
/* caso a condição for false: */ 
 (
  &amp;lt;p&amp;gt;nao tem item na lista&amp;lt;/p&amp;gt;
 )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao trabalhar com o método &lt;code&gt;map&lt;/code&gt; em React, é necessário que cada elemento tenha uma &lt;code&gt;key&lt;/code&gt; única para identificá-lo. A&lt;code&gt;key&lt;/code&gt; serve para que o React possa gerenciar cada elemento de forma eficiente e evitar erros. Ela deve ser uma &lt;code&gt;string&lt;/code&gt; ou &lt;code&gt;número&lt;/code&gt; que seja única entre todos os elementos da lista.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;O operador &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; é usado para avaliar duas expressões e retornar a primeira expressão se ela for verdadeira, e &lt;code&gt;null&lt;/code&gt; caso contrário. Não há suporte para um bloco else quando se usa o operador &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;.&lt;br&gt;
Já o operador ternário &lt;code&gt;(condition ? expressionIfTrue : expressionIfFalse)&lt;/code&gt;, que é outra forma de escrever condições em JavaScript, sempre exige a presença de uma expressão para o bloco else após o &lt;code&gt;:&lt;/code&gt;. O que vem após o &lt;code&gt;:&lt;/code&gt; será avaliado como a expressão para o bloco &lt;code&gt;else&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  REACT ROUTER
&lt;/h2&gt;

&lt;p&gt;O React Router permite criar rotas personalizadas para as páginas do seu aplicativo React. Cada página é representada por um componente único. Ao usar o React Router, é possível navegar entre as páginas sem recarregar toda a página, mantendo assim uma experiência de navegação fluida para o usuário. Além disso, o React Router permite mudar tanto partes do layout quanto toda a página, de acordo com suas necessidades.&lt;/p&gt;

&lt;h6&gt;Estrutura de pastas&lt;/h6&gt;

&lt;p&gt;Para criar um aplicativo com várias rotas de página, vamos primeiro começar com a estrutura do arquivo.&lt;/p&gt;

&lt;p&gt;Dentro da pasta &lt;code&gt;src&lt;/code&gt;, criaremos uma pasta &lt;code&gt;pages&lt;/code&gt; com vários arquivos:&lt;/p&gt;

&lt;p&gt;src\pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Layout.js&lt;/li&gt;
&lt;li&gt;Home.js&lt;/li&gt;
&lt;li&gt;Blogs.js&lt;/li&gt;
&lt;li&gt;Contact.js&lt;/li&gt;
&lt;li&gt;NoPage.js&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada arquivo conterá um componente React muito básico.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.devmedia.com.br/react-js-criando-rotas-com-react-router-dom/42901" rel="noopener noreferrer"&gt;https://www.devmedia.com.br/react-js-criando-rotas-com-react-router-dom/42901&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  REACT ICONS
&lt;/h2&gt;

&lt;p&gt;São um pacote de ícones externos que podem ser adicionados ao seu projeto através do NPM. Eles permitem adicionar ícones ao projeto com uma sintaxe intuitiva e semelhante a de um componente:&lt;br&gt;
&lt;code&gt;&amp;lt;FaIcone /&amp;gt;&lt;/code&gt;&lt;/p&gt;




</description>
    </item>
  </channel>
</rss>
