Se você é novo no React Native ou React, já se deparou com as palavras estado e adereços. Compreender esses dois é essencial para desenvolver aplicativos móveis dinâmicos e adaptáveis. Iremos nos aprofundar no estado e nos adereços neste artigo do blog, examinaremos suas diferenças e aprenderemos como lidar com eficácia com o fluxo de dados em seu aplicativo React Native.
State é um objeto integrado que permite aos componentes criar e gerenciar seus próprios dados. Ele contém informações que podem mudar ao longo do ciclo de vida do componente. Sempre que o estado muda, o componente é renderizado novamente para refletir essas mudanças.
Props, abreviação de propriedades, são componentes somente leitura. Eles são parâmetros externos passados para um componente, semelhantes a como os argumentos são passados para uma função.
Recurso | Estado | Adereços |
---|---|---|
Mutabilidade | Mutável (pode mudar com o tempo) | Imutável (somente leitura) |
Escopo | Local para o componente | Passado de componentes pai para filho |
Propósito | Gerencia dados que mudam ao longo do tempo | Configura componentes com dados externos |
Atualizações | Aciona nova renderização quando atualizado | Não aciona a nova renderização quando alterado no pai |
Entender quando usar estado e quando usar adereços é fundamental para gerenciar o fluxo de dados em seu aplicativo.
O gerenciamento eficaz do fluxo de dados garante que seu aplicativo se comporte de maneira previsível e seja mais fácil de depurar e manter.
React Native usa um fluxo de dados unidirecional. Os dados são transferidos dos componentes pai para filho por meio de adereços. Isso torna o fluxo de dados mais fácil de entender e depurar.
Quando vários componentes precisam acessar o mesmo dado, é melhor elevar o estado ao ancestral comum mais próximo. Dessa forma, o estado compartilhado pode ser transmitido por meio de adereços.
Para permitir que componentes filhos se comuniquem com componentes pais, você pode transmitir funções (retornos de chamada) como adereços. O componente filho pode então chamar esta função para enviar dados de volta ao pai.
Vejamos alguns exemplos de código para ilustrar esses conceitos.
Componente pai (App.js):
import React from 'react'; import { View } from 'react-native'; import Greeting from './Greeting'; const App = () => { return (); }; export default App;
Componente filho (Greeting.js):
import React from 'react'; import { Text } from 'react-native'; const Greeting = (props) => { returnHello {props.name} ; }; export default Greeting;
Explicação:
Componente contador (Counter.js):
import React, { useState } from 'react'; import { View, Button, Text } from 'react-native'; const Counter = () => { const [count, setCount] = useState(0); return (); }; export default Counter; You clicked {count} times
Explicação:
Componente pai (TemperatureConverter.js):
import React, { useState } from 'react'; import { View } from 'react-native'; import TemperatureInput from './TemperatureInput'; const toCelsius = (fahrenheit) => ((fahrenheit - 32) * 5) / 9; const toFahrenheit = (celsius) => (celsius * 9) / 5 32; const TemperatureConverter = () => { const [temperature, setTemperature] = useState(''); const [scale, setScale] = useState('c'); const handleCelsiusChange = (temp) => { setScale('c'); setTemperature(temp); }; const handleFahrenheitChange = (temp) => { setScale('f'); setTemperature(temp); }; const celsius = scale === 'f' ? toCelsius(parseFloat(temperature)) : temperature; const fahrenheit = scale === 'c' ? toFahrenheit(parseFloat(temperature)) : temperature; return (); }; export default TemperatureConverter;
Componente filho (TemperatureInput.js):
import React from 'react'; import { TextInput, Text } from 'react-native'; const scaleNames = { c: 'Celsius', f: 'Fahrenheit', }; const TemperatureInput = ({ scale, temperature, onTemperatureChange }) => { return (Enter temperature in {scaleNames[scale]}: > ); }; export default TemperatureInput;
Explicação:
Componentes sem estado são mais fáceis de testar e depurar. Use adereços para passar dados para eles.
Use o estado apenas quando necessário. Muitos componentes com estado podem dificultar o gerenciamento do seu aplicativo.
Nunca altere o estado diretamente. Sempre use setState ou a função de atualização de useState.
Use PropTypes para documentar os tipos pretendidos de propriedades passadas aos componentes.
import PropTypes from 'prop-types'; Greeting.propTypes = { name: PropTypes.string.isRequired, };
Para dados que precisam ser acessíveis por muitos componentes em diferentes níveis de aninhamento, considere usar a API Context.
// Incorrect this.state.count = this.state.count 1; // Correct this.setState({ count: this.state.count 1 });
Componentes filhos não devem tentar modificar adereços ou estado pai diretamente. Use retornos de chamada.
Compreender e gerenciar efetivamente estados e adereços é essencial para qualquer desenvolvedor React Native. Ao dominar esses conceitos, você será capaz de criar aplicativos que não são apenas funcionais, mas também limpos, eficientes e de fácil manutenção.
Lembrar:
Reserve um tempo para praticar esses conceitos em seus projetos e você verá uma melhoria significativa em seu fluxo de trabalho de desenvolvimento.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3