File tree 3 files changed +117
-8
lines changed
apps/tutorial/public/docs/6-component-patterns/8-arg-components
3 files changed +117
-8
lines changed Original file line number Diff line number Diff line change 1
- <template >
2
- This tutorial chapter needs to be written!
1
+ // Renders: 🐹 + 🧑💻 = 🧡
2
+
3
+ import { hash } from ' @ember/helper' ;
4
+
5
+ const Hamster = <template >
6
+ 🐹
7
+ </template >;
8
+
9
+ const Computer = <template >
10
+ 🧑💻
11
+ </template >;
3
12
4
- It could be written by you!, if you want < 3
13
+ const BlueHeart = <template >💙</template >;
14
+ const GreenHeart = <template >💚</template >;
15
+ const OrangeHeart = <template >🧡</template >;
16
+
17
+ const Love = <template >
18
+ {{yield
19
+ ( hash
20
+ blue =BlueHeart
21
+ green =GreenHeart
22
+ orange =OrangeHeart
23
+ )
24
+ }}
25
+ </template >;
26
+
27
+ const Ember = <template >
28
+ <@ hamster /> + <@ computer /> = <@ love />
29
+ </template >;
30
+
31
+ <template >
32
+ <Love as | love | >
33
+ <Ember @ hamster ={{Hamster }} @ computer ={{Computer }} @ love ={{love.orange }} />
34
+ </Love >
5
35
</template >
Original file line number Diff line number Diff line change 1
- <template >
2
- This tutorial chapter needs to be written!
1
+ // Renders: 🐹 + 🧑💻 = 🧡
2
+
3
+ import { hash } from ' @ember/helper' ;
4
+
5
+ const Hamster = <template >
6
+ 🐹
7
+ </template >;
8
+
9
+ const Computer = <template >
10
+ 🧑💻
11
+ </template >;
3
12
4
- It could be written by you!, if you want < 3
13
+ const BlueHeart = <template >💙</template >;
14
+ const GreenHeart = <template >💚</template >;
15
+ const OrangeHeart = <template >🧡</template >;
16
+
17
+ const Love = <template >
18
+ {{yield
19
+ ( hash
20
+ blue =BlueHeart
21
+ green =GreenHeart
22
+ orange =OrangeHeart
23
+ )
24
+ }}
25
+ </template >;
26
+
27
+ const Ember = <template >
28
+ <@ hamster /> + <@ computer /> = <@ love />
29
+ </template >;
30
+
31
+ <template >
32
+ <Ember />
5
33
</template >
Original file line number Diff line number Diff line change 1
- This tutorial chapter needs to be written!
1
+ Argument components are components passed down as arguments.
2
2
3
- It could be written by you!, if you want < ; 3
3
+ Here is an example of a ` Greeter ` component being passed down ` Me ` component as ` @person ` argument:
4
+
5
+ ``` gjs
6
+ const Me = <template>
7
+ NullVoxPopuli
8
+ </template>;
9
+
10
+ const Greeter = <template>
11
+ Hello <@person />!
12
+ </template>;
13
+
14
+ <template>
15
+ <Greeter @person={{Me}} />
16
+ </template>
17
+ ```
18
+
19
+ This pattern can be also used in cases where a _ component A_ ` yields ` _ component B_ and this one then needs to be used in _ component C_ :
20
+
21
+ ``` gjs
22
+ import { hash } from '@ember/helper';
23
+
24
+ const Button = <template>
25
+ <button type="button">Close</button>
26
+ </template>;
27
+
28
+ const Sidebar = <template>
29
+ <side>
30
+ {{yield (hash closeButton=Button)}}
31
+ </side>
32
+ </template>;
33
+
34
+ const Menu = <template>
35
+ <nav>
36
+ <ul>
37
+ <li>Home</li>
38
+ <li>About</li>
39
+ </ul>
40
+ </nav>
41
+
42
+ <@closeMenu />
43
+ </template>;
44
+
45
+ <template>
46
+ <Sidebar as |side|>
47
+ <Menu @closeMenu={{side.closeButton}} />
48
+ </Sidebar>
49
+ </template>;
50
+ ```
51
+
52
+ [ Documentation on rendering values] [ docs ]
53
+
54
+ [ docs ] : https://guides.emberjs.com/release/in-depth-topics/rendering-values/
You can’t perform that action at this time.
0 commit comments