我应该如何使用 ractive 设计通用容器组件?
How should I design generic container components with ractive?
我想用 ractive 创建手风琴 ui。我可以使用具有静态内容的基本模板来执行此操作,但我不明白如何将模板变成可重用的通用组件。
如果我用代码解释可能会更容易。基本上,我希望能够像这样编写代码 something:
<my-accordian>
<my-accordian-section header="section one">
<my-other-component-a foo="apple" one="1">
<my-other-component-b foo="banana" two="2">
</my-accordian-section>
<my-accordian-section>
<my-other-component-c foo="apple" one="1">
<my-other-component-d foo="banana" two="2">
</my-accordian-section>
</my-accordian>
实现这样的目标的最佳方法是什么?
你可以用 yields 做到这一点。您所要做的就是制作这些 "wrapper components" 并将 {{ yield }}
分配给您希望内部 html 出现的位置。
我的-accordian.html
<div class="accordion">
{{yield}} <!-- anything between <my-accordian></my-accordian> --> goes here
</div>
我的手风琴-section.html
<div class="accordion-section">
<div class="accordion-header">
<h3>{{ header }}</h3> <!-- the header property you passed in goes here -->
</div>
<div class="accordion-content">
{{ yield }} <!-- anything between <my-accordian-section></my-accordian-section> --> goes here
</div>
</div>
您可以用 {{> content }}
做同样的事情,但区别在于内部 html 获取数据的位置。收益率将是更好的选择。
我想用 ractive 创建手风琴 ui。我可以使用具有静态内容的基本模板来执行此操作,但我不明白如何将模板变成可重用的通用组件。
如果我用代码解释可能会更容易。基本上,我希望能够像这样编写代码 something:
<my-accordian>
<my-accordian-section header="section one">
<my-other-component-a foo="apple" one="1">
<my-other-component-b foo="banana" two="2">
</my-accordian-section>
<my-accordian-section>
<my-other-component-c foo="apple" one="1">
<my-other-component-d foo="banana" two="2">
</my-accordian-section>
</my-accordian>
实现这样的目标的最佳方法是什么?
你可以用 yields 做到这一点。您所要做的就是制作这些 "wrapper components" 并将 {{ yield }}
分配给您希望内部 html 出现的位置。
我的-accordian.html
<div class="accordion">
{{yield}} <!-- anything between <my-accordian></my-accordian> --> goes here
</div>
我的手风琴-section.html
<div class="accordion-section">
<div class="accordion-header">
<h3>{{ header }}</h3> <!-- the header property you passed in goes here -->
</div>
<div class="accordion-content">
{{ yield }} <!-- anything between <my-accordian-section></my-accordian-section> --> goes here
</div>
</div>
您可以用 {{> content }}
做同样的事情,但区别在于内部 html 获取数据的位置。收益率将是更好的选择。