Aplicando Estilos Inline na Prática
Vamos criar um componente Notification versátil que exibe texto e altera dinamicamente a propriedade background-color com base na prop behavior. A implementação será realizada passo a passo.
Passo 1
Iniciamos criando o componente pai, App, juntamente com o componente filho, Notification, utilizando a estrutura básica do React.
// Import necessary dependencies and create a root element
import { createRoot } from "react-dom/client";
const root = createRoot(document.getElementById("root"));
// Child component - `Notification`
const Notification = (props) => <></>;
// Parent component - `App`
const App = () => <></>;
// Render the `App` component to the root element
root.render(<App />);
Etapa 2
Para fornecer uma estilização padrão para o componente Notification, criamos um objeto chamado notificationStyles e atribuimos as seguintes propriedades:
padding com o valor de "20px";
fontSize com o valor de "24px";
color com o valor de "aquamarine";
// Define default styles as an object
const notificationStyles = {
padding: "20px",
fontSize: "24px",
color: "aquamarine",
};
Atribuir o objeto notificationStyles como valor para o atributo style do componente Notification component, que é aplicado ao elemento p retornado.
// Child component - Notification
const Notification = (props) => (
<>
{/* Step 2: Apply default styles using inline styles */}
<p style={notificationStyles}></p>
</>
);
Etapa 3
No componente App, é possível utilizar o componente Notification passando as props behavior e text. A prop behavior determina a aparência da notificação, enquanto a prop text especifica o texto a ser exibido dentro da notificação.
// Parent component - `App`
const App = () => (
<>
{/* Step 3: Use the Notification component with behavior and text props */}
<Notification text="Success" behavior="positive" />
<Notification text="Failure" behavior="negative" />
<Notification text="Information" behavior="neutral" />
</>
);
Etapa 4
É possível implementar a lógica para colorir o fundo de cada mensagem de notificação com base na prop behavior da seguinte forma:
- Se o valor de
behaviorfor"positive", a cor de fundo deve sergreen; - Se o valor de
behaviorfor"negative", a cor de fundo deve serred; - Se o valor de
behaviorfor"neutral", a cor de fundo deve serblue.
Pode-se criar uma função para tratar essa lógica utilizando a instrução switch do JavaScript. Veja um exemplo de implementação:
// Function to set background color based on `behavior` prop
const setBackgroundColor = (behavior) => {
switch (behavior) {
case "positive":
return "green";
case "negative":
return "red";
case "neutral":
return "blue";
default:
return "transparent";
}
};
Essa função recebe a prop behavior como argumento e retorna a cor de fundo correspondente com base no valor utilizando a instrução switch. A prop behavior retornará uma cor de fundo transparent caso não corresponda aos casos especificados.
Vamos incorporar essa função ao objeto de estilos do componente:
// Child component - `Notification`
const Notification = (props) => (
<>
{/* Step 2, : Apply default styles using inline styles */}
{/* Step 4, : Apply the value for the `background-color` property
based on the `behavior` prop */}
<p
style={{
...notificationStyles,
backgroundColor: setBackgroundColor(props.behavior),
}}
>
{props.text}
</p>
</>
);
Utilizam-se convenções do JavaScript para garantir a estrutura adequada do objeto de estilos. Primeiro, espalha-se o objeto notificationStyles existente. Em seguida, adiciona-se uma propriedade adicional, backgroundColor, cujo valor é derivado da string retornada pela função setBackgroundColor.
Código completo do aplicativo:
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you show me the complete code for the Notification component?
How can I customize the colors for different behaviors?
Can you explain how the style merging works in the Notification component?
Awesome!
Completion rate improved to 2.17
Aplicando Estilos Inline na Prática
Deslize para mostrar o menu
Vamos criar um componente Notification versátil que exibe texto e altera dinamicamente a propriedade background-color com base na prop behavior. A implementação será realizada passo a passo.
Passo 1
Iniciamos criando o componente pai, App, juntamente com o componente filho, Notification, utilizando a estrutura básica do React.
// Import necessary dependencies and create a root element
import { createRoot } from "react-dom/client";
const root = createRoot(document.getElementById("root"));
// Child component - `Notification`
const Notification = (props) => <></>;
// Parent component - `App`
const App = () => <></>;
// Render the `App` component to the root element
root.render(<App />);
Etapa 2
Para fornecer uma estilização padrão para o componente Notification, criamos um objeto chamado notificationStyles e atribuimos as seguintes propriedades:
padding com o valor de "20px";
fontSize com o valor de "24px";
color com o valor de "aquamarine";
// Define default styles as an object
const notificationStyles = {
padding: "20px",
fontSize: "24px",
color: "aquamarine",
};
Atribuir o objeto notificationStyles como valor para o atributo style do componente Notification component, que é aplicado ao elemento p retornado.
// Child component - Notification
const Notification = (props) => (
<>
{/* Step 2: Apply default styles using inline styles */}
<p style={notificationStyles}></p>
</>
);
Etapa 3
No componente App, é possível utilizar o componente Notification passando as props behavior e text. A prop behavior determina a aparência da notificação, enquanto a prop text especifica o texto a ser exibido dentro da notificação.
// Parent component - `App`
const App = () => (
<>
{/* Step 3: Use the Notification component with behavior and text props */}
<Notification text="Success" behavior="positive" />
<Notification text="Failure" behavior="negative" />
<Notification text="Information" behavior="neutral" />
</>
);
Etapa 4
É possível implementar a lógica para colorir o fundo de cada mensagem de notificação com base na prop behavior da seguinte forma:
- Se o valor de
behaviorfor"positive", a cor de fundo deve sergreen; - Se o valor de
behaviorfor"negative", a cor de fundo deve serred; - Se o valor de
behaviorfor"neutral", a cor de fundo deve serblue.
Pode-se criar uma função para tratar essa lógica utilizando a instrução switch do JavaScript. Veja um exemplo de implementação:
// Function to set background color based on `behavior` prop
const setBackgroundColor = (behavior) => {
switch (behavior) {
case "positive":
return "green";
case "negative":
return "red";
case "neutral":
return "blue";
default:
return "transparent";
}
};
Essa função recebe a prop behavior como argumento e retorna a cor de fundo correspondente com base no valor utilizando a instrução switch. A prop behavior retornará uma cor de fundo transparent caso não corresponda aos casos especificados.
Vamos incorporar essa função ao objeto de estilos do componente:
// Child component - `Notification`
const Notification = (props) => (
<>
{/* Step 2, : Apply default styles using inline styles */}
{/* Step 4, : Apply the value for the `background-color` property
based on the `behavior` prop */}
<p
style={{
...notificationStyles,
backgroundColor: setBackgroundColor(props.behavior),
}}
>
{props.text}
</p>
</>
);
Utilizam-se convenções do JavaScript para garantir a estrutura adequada do objeto de estilos. Primeiro, espalha-se o objeto notificationStyles existente. Em seguida, adiciona-se uma propriedade adicional, backgroundColor, cujo valor é derivado da string retornada pela função setBackgroundColor.
Código completo do aplicativo:
Obrigado pelo seu feedback!