Skip to content

Commit 01fcde0

Browse files
committed
Add functional components docs in BR
1 parent dc13539 commit 01fcde0

File tree

4 files changed

+119
-3
lines changed

4 files changed

+119
-3
lines changed
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
title: Componentes Funcionais
3+
description: Componentes Funcionais são simples funções puras que podem modificar o contexto e não tem estado próprio
4+
---
5+
6+
Desde a v0.9.21, o Nullstack tem a simplicidade de componentes funcionais puros pronta para uso.
7+
8+
Este segue as especificações de [componentes renderizáveis](/pt-br/componentes-renderizaveis), mas com mais ênfase no **renderizável**.
9+
10+
Usando funções puras, você pode escrever componentes focados na renderização da seguinte maneira:
11+
12+
```jsx
13+
const AnonComponent = function(context) {
14+
return (
15+
<div html={context.html} id={context.id}></div>
16+
)
17+
}
18+
19+
function NamedComponent(context) {
20+
return (
21+
<div html={context.html} id={context.id}></div>
22+
)
23+
}
24+
25+
const ArrowComponent = (context) => {
26+
return (
27+
<div html={context.html} id={context.id}></div>
28+
)
29+
}
30+
31+
export default {
32+
AnonComponent,
33+
NamedComponent,
34+
ArrowComponent
35+
};
36+
```
37+
38+
E exportado assim, seu uso seria:
39+
40+
```jsx
41+
import Nullstack from 'nullstack';
42+
import Functionals from './Functionals';
43+
44+
class Application extends Nullstack {
45+
46+
render() {
47+
const html = "<p>texto</p>";
48+
return (
49+
<main>
50+
<Functionals.AnonComponent html={html} id="1"/>
51+
<Functionals.NamedComponent html={html} id="2"/>
52+
<Functionals.ArrowComponent html={html} id="3"/>
53+
</main>
54+
)
55+
}
56+
57+
}
58+
59+
export default Application;
60+
```
61+
62+
Então, o resultado da renderização seria diretamente semelhante a:
63+
64+
```html
65+
<div id="1"> <p>texto</p> </div>
66+
<div id="2"> <p>texto</p> </div>
67+
<div id="3"> <p>texto</p> </div>
68+
```
69+
70+
## Vinculando Valores do Contexto
71+
72+
Mesmo não tendo estado próprio, os componentes funcionais do Nullstack podem vincular e modificar valores do [`context`](/pt-br/contexto).
73+
74+
```jsx
75+
import Nullstack from 'nullstack';
76+
import BindPureComponent from './Functionals';
77+
78+
class Application extends Nullstack {
79+
80+
prepare(context) {
81+
context.count = 0;
82+
}
83+
84+
render() {
85+
return (
86+
<main>
87+
<BindPureComponent/>
88+
</main>
89+
)
90+
}
91+
92+
}
93+
94+
export default Application;
95+
```
96+
97+
Registrando `counter` no `context` como no componente acima, podemos ler e modificar esse dado no **BindPureComponent** da seguinte maneira:
98+
99+
```jsx
100+
export default function BindPureComponent(context) {
101+
return (
102+
<div>
103+
<input type="number" bind={context.count}/>
104+
<p>{context.count}</p>
105+
</div>
106+
)
107+
}
108+
```
109+
110+
> 💡 Com sua versatilidade e simplicidade, os componentes funcionais são perfeitos para bibliotecas de componentes sem estado
111+
112+
## Próxima Etapa
113+
114+
⚔ Aprenda sobre a [chave `data` do contexto](/pt-br/contexto-data).

i18n/pt-BR/articles/componentes-renderizaveis.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Componentes renderizáveis
33
description: Componentes renderizáveis são muito semelhantes aos componentes da Web que fornecem a capacidade de criar novas tags HTML que atalham um grupo de outras tags HTML
44
---
55

6-
O componente mais simples que você pode fazer é um componente renderizável.
6+
O componente mais simples que você pode fazer é um componente renderizável, com exceção de [componentes funcionais](/pt-br/componentes-funcionais).
77

88
Componentes renderizáveis são muito semelhantes aos componentes da Web que fornecem a capacidade de criar novas tags HTML que atalham um grupo de outras tags HTML.
99

i18n/pt-BR/articles/inicializacao-da-aplicacao.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ export default Application;
4545

4646
> 🔒 As funções de servidor com o nome começando com "start" (e opcionalmente seguido por uma letra maiúscula) não geram um endpoint de API para evitar inundação de contexto malicioso.
4747
48-
## Next step
48+
## Próxima Etapa
4949

50-
⚔ Aprenda sobre a [chave `data` do contexto](/pt-br/contexto-data).
50+
⚔ Aprenda sobre [componentes funcionais](/pt-br/componentes-funcionais).

i18n/pt-BR/components/Documentation.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ topics:
2727
links:
2828
- title: "Inicialização da aplicação"
2929
href: "/pt-br/inicializacao-da-aplicacao"
30+
- title: "Componentes Funcionais"
31+
href: "/pt-br/componentes-funcionais"
3032
- title: "Contexto data"
3133
href: "/pt-br/contexto-data"
3234
- title: "Contexto Instances"

0 commit comments

Comments
 (0)