У меня вопрос о том, как лучше всего передать какое-то значение из родительского компонента в дочерний компонент и показать его, потому что я пытался передать значение с помощью свойств и слота, и оба способа работают.
Свойства: у меня есть список движений, и я использую repeat
из lit-html (и метод html
для рендеринга) в родительском компоненте, чтобы создать n дочерний компонент, дающий значения в их свойствах.
//father component
render(){
return html`
${repeat(movements, movement => movement.id, (movement, index)=> html`
<movement
.id=${movement.id} .description=${movement.description} .amount=${movement.amount} .balance=${movement.balance}>
</movement>
<hr>
`)}
`
}
//child component
render(){
return html`
<dt>${this.id}</dt>
<dl>${this.description}</dl>
<dl>${this.amount}</dl>
<dl>${this.balance}</dl>
`;
}
Слот: у меня есть список движения, и я использую repeat
из lit-html (и метод html
для рендеринга) в родительском компоненте, чтобы создать n дочерний компонент, дающий значения в слоте, которые были объявлены в дочерний компонент
//child component
render(){
return html`
<dd>
<slot name="id"></slot>
<slot name="description"></slot>
<slot name="amount"></slot>
<slot name="balance"></slot>
</dd>
`;
}
//father component
render(){
return html`
${repeat(movements, movement=>movement.id, (movement, index)=>html`
<movement>
<dt slot="id"> ${movement.id} </dt>
<dl slot="description"> ${movement.description} </dl>
<dl slot="amount"> ${movement.amount} </dl>
<dl slot="balance"> ${movement.balance} </dl>
</movement>
`)}
`;
}
Какой это лучший способ? Когда мне нужно использовать одно и другое?