Render a list of items using AlpineJS
A Pen by Eddie Ebeling on CodePen.
Render a list of items using AlpineJS
A Pen by Eddie Ebeling on CodePen.
<div class="h-full bg-gray-200 text-gray-800 p-4 lg:p-8" | |
x-data="alpineInstance()" | |
x-init="fetch('https://jsonplaceholder.typicode.com/users') | |
.then(response => response.json()) | |
.then(data => users = data)"> | |
<h1 class="mt-0 mb-3 font-light text-3xl" x-text="title"><!-- title text --></h1> | |
<p class="text-xl text-gray-600 font-light mb-4" x-html="intro"><!-- intro text --></p> | |
<div class="flex flex-wrap -mx-2 pb-8"> | |
<!-- begin: user card --> | |
<template x-for="user in users" :key="user.id"> | |
<div class="w-full md:w-1/2 lg:w-1/3 xl:w-1/4 h-full font-light"> | |
<div class="flex bg-white rounded-lg shadow-md m-2 border-l-4 border-white hover:shadow-2xl hover:border-pink-500 cursor-pointer relative"> | |
<div class="p-4 pr-6 leading-normal"> | |
<div class="font-medium text-xl truncate" x-text="user.name"></div> | |
<div class="truncate uppercase text-xs text-gray-500 font-semibold pb-2 tracking-widest" x-text="user.company.name"></div> | |
<div class="" x-text="user.phone"></div> | |
<a class="text-blue-600 hover:text-blue-700 mr-4 block" x-bind:href="'mailto:' + user.email" x-text="user.email"></a> | |
<a class="text-blue-600 hover:text-blue-700 block" x-bind:href="'https://' + user.website" x-text="user.website"></a> | |
</div> | |
</div> | |
</div> | |
</template> | |
<!-- end: user card --> | |
</div> | |
</div> |
function alpineInstance() { | |
return { | |
title: 'Alpine.js', | |
intro: 'Implement a simple <code class="text-md text-pink-600">fetch()</code> request to render a list of items using Alpine.js :)', | |
users: [], | |
} | |
} |
<script src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.js"></script> |
body, html { | |
padding:0; | |
margin:0; | |
height:100%; | |
background: #edf2f7; | |
} | |
.text-link { | |
@apply text-blue-600 hover:text-blue-700; | |
} |
<link href="https://cdnjs.cloudflare.com/ajax/libs/tailwindcss/1.2.0/tailwind.min.css" rel="stylesheet" /> | |
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" rel="stylesheet" /> |