|
@@ -20,13 +20,13 @@ Existem 2 tipos de estruturas Props:
|
|
|
_Props_ próprios são muito simples – eles não emprestam nada. Exemplo:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_owned_props.rs:Likes}}
|
|
|
+{{#include ../../../examples/component_owned_props.rs:Likes}}
|
|
|
```
|
|
|
|
|
|
Você pode então passar valores de _prop_ para o componente da mesma forma que você passaria atributos para um elemento:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_owned_props.rs:App}}
|
|
|
+{{#include ../../../examples/component_owned_props.rs:App}}
|
|
|
```
|
|
|
|
|
|

|
|
@@ -38,13 +38,13 @@ Possuir _props_ funciona bem se seus _props_ forem fáceis de copiar – como um
|
|
|
Rust permite algo mais eficiente – emprestar a `String` como um `&str` – é para isso que servem as _props emprestadas_!
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_borrowed_props.rs:TitleCard}}
|
|
|
+{{#include ../../../examples/component_borrowed_props.rs:TitleCard}}
|
|
|
```
|
|
|
|
|
|
Podemos então usar o componente assim:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_borrowed_props.rs:App}}
|
|
|
+{{#include ../../../examples/component_borrowed_props.rs:App}}
|
|
|
```
|
|
|
|
|
|

|
|
@@ -58,13 +58,13 @@ A macro `#[derive(Props)]` tem alguns recursos que permitem personalizar o compo
|
|
|
Você pode criar campos opcionais usando o tipo `Option<…>` para um campo:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:OptionalProps}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:OptionalProps}}
|
|
|
```
|
|
|
|
|
|
Em seguida, você pode optar por fornecê-los ou não:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:OptionalProps_usage}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:OptionalProps_usage}}
|
|
|
```
|
|
|
|
|
|
### `Option` Explicitamente Obrigatórias
|
|
@@ -72,13 +72,13 @@ Em seguida, você pode optar por fornecê-los ou não:
|
|
|
Se você quiser exigir explicitamente uma `Option`, e não uma _prop_ opcional, você pode anotá-la com `#[props(!optional)]`:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:ExplicitOption}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:ExplicitOption}}
|
|
|
```
|
|
|
|
|
|
Então, você tem que passar explicitamente `Some("str")` ou `None`:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:ExplicitOption_usage}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:ExplicitOption_usage}}
|
|
|
```
|
|
|
|
|
|
### Props Padrão
|
|
@@ -86,13 +86,13 @@ Então, você tem que passar explicitamente `Some("str")` ou `None`:
|
|
|
Você pode usar `#[props(default = 42)]` para tornar um campo opcional e especificar seu valor padrão:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:DefaultComponent}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:DefaultComponent}}
|
|
|
```
|
|
|
|
|
|
Então, da mesma forma que _props_ opcionais, você não precisa fornecê-lo:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:DefaultComponent_usage}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:DefaultComponent_usage}}
|
|
|
```
|
|
|
|
|
|
### Conversão Automática com `.into`
|
|
@@ -100,13 +100,13 @@ Então, da mesma forma que _props_ opcionais, você não precisa fornecê-lo:
|
|
|
É comum que as funções Rust aceitem `impl Into<SomeType>` em vez de apenas `SomeType` para suportar uma ampla gama de parâmetros. Se você quiser uma funcionalidade semelhante com _props_, você pode usar `#[props(into)]`. Por exemplo, você pode adicioná-lo em uma prop `String` – e `&str` também será aceito automaticamente, pois pode ser convertido em `String`:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:IntoComponent}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:IntoComponent}}
|
|
|
```
|
|
|
|
|
|
Então, você pode usá-lo assim:
|
|
|
|
|
|
```rust
|
|
|
-{{#include ../../examples/component_props_options.rs:IntoComponent_usage}}
|
|
|
+{{#include ../../../examples/component_props_options.rs:IntoComponent_usage}}
|
|
|
```
|
|
|
|
|
|
## A macro `inline_props`
|