If you store some x-data variable as an array, you can loop through it and render a template multiple times using x-for, like this:
<ul x-data="shop">
<template x-for='(item, index) in cart'>
<li>
<p x-text='item.title'></p>
<p x-text='formatAsPrice(item.price)'></p>
<button @click=`removeFromCart(index)`>
Remove
</button>
</li>
</template>
</ul>
The caveat is that x-for must be put on a <template> tag, and this must have a single child element (for example, wrap all tags in a div if you have more).
The <template> tag is a special tag used to hold content that’s not rendered immediately on the page, but rendered using JavaScript (see MDN).
Lessons in this unit:
| 0: | Introduction |
| 1: | Installing Alpine |
| 2: | The basics of Alpine |
| 3: | Events |
| 4: | Defining data |
| 5: | ▶︎ Looping |
| 6: | Binding user input to variables |
| 7: | Watching variables change |
| 8: | Stores |