00.stencil:03.stencilの_propと_state
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| 00.stencil:03.stencilの_propと_state [2019/09/25] – [03.Stencilの@propと@state] adash333 | 00.stencil:03.stencilの_propと_state [2019/09/26] (現在) – [@state()の解説のリンク] adash333 | ||
|---|---|---|---|
| 行 18: | 行 18: | ||
| }); | }); | ||
| } | } | ||
| - | |||
| - | renderWelcomeMessage() { | ||
| - | return ( | ||
| - | <div> | ||
| </ | </ | ||
| 行 31: | 行 27: | ||
| Prop Decorator(公式ドキュメント) | Prop Decorator(公式ドキュメント) | ||
| + | Props should be used to pass data down from the parent component to the child component. | ||
| + | 親コンポーネント内のデータを、子コンポーネントに伝達するためには、親コンポーネント内でデータに@prop()というデコレータをつけて、エクスポートして、それを子コンポーネントで受けとるという作業が必要になります。 | ||
| + | |||
| + | 公式ドキュメントには以下のように記載させています。後で実際に試してみたいと思います。 | ||
| + | |||
| + | 親コンポーネント | ||
| + | <code javascript> | ||
| + | import { Prop } from ' | ||
| + | |||
| + | ... | ||
| + | export class TodoList { | ||
| + | @Prop() color: string; | ||
| + | @Prop() favoriteNumber: | ||
| + | @Prop() isSelected: boolean; | ||
| + | @Prop() myHttpService: | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 子コンポーネントで、上記のcolorを受けとる方法 | ||
| + | < | ||
| + | logColor() { | ||
| + | console.log(this.color) | ||
| + | } | ||
| + | </ | ||
| ===== @state()の解説のリンク ===== | ===== @state()の解説のリンク ===== | ||
| 行 38: | 行 58: | ||
| https:// | https:// | ||
| State Decorator(公式ドキュメント) | State Decorator(公式ドキュメント) | ||
| + | |||
| + | 内容が変化する可能性のあるデータには、 | ||
| + | @state()デコレータをつけるそうです。 | ||
| + | |||
| + | Any changes to a @State() property will cause the components render function to be called again. | ||
| + | @State() propertyが変更されるたびに、コンポーネントのrender関数が呼び出される(再描画される)。 | ||
| + | |||
| + | https:// | ||
| + | |||
| + | コンポーネント | ||
| + | < | ||
| + | @State() holdings: Holding[] = []; | ||
| + | </ | ||
| + | と、holdingsに@State()をつけることで、 | ||
| + | < | ||
| + | componentDidLoad() { | ||
| + | const router = document.querySelector(" | ||
| + | |||
| + | // Refresh data every time view is entered | ||
| + | router.addEventListener(" | ||
| + | const holdings = await Holdings.getHoldings(); | ||
| + | this.holdings = [...holdings]; | ||
| + | }); | ||
| + | } | ||
| + | </ | ||
| + | により、ページのアドレスが変化するたびに、holdingsが再描画されて、表示されるものが最新のものになるようにしています。 | ||
| + | |||
| + | |||
00.stencil/03.stencilの_propと_state.1569384259.txt.gz · 最終更新: 2019/09/25 by adash333
