ตัวอย่างการใช้ List Rendering ใน Astro

มาดูตัวอย่างการใช้ List Rendering ใน Astro กันครับ

ตัวอย่างนี้จะเป็นการใช้ List rendering ใน astro โดยในตัวอย่างเราจะ render menu ครับ

ไปดูตัวอย่างกัน โดยเราจะมี list ดังนี้

---
let menu = [
	{name: 'ก่อนตั้งครรภ์', url: '/before-pregnant'},
	{name: 'ตั้งครรภ์', url: '/pregnant'},
	{name: 'หลังตั้งครรภ์', url: '/after-pregnant'},
	{name: 'สุขภาพและโภชนาการ', url: '/health'},
	{name: 'ชีวิตครอบครัว', url: '/family'},
	{name: 'สิ่งของเครื่องใช้', url: '/appliances'},
	{name: 'ไลฟ์สไตล์', url: '/lifestyle'}
]
---

ส่วนในตอน render เราก็จะได้ประมาณนี้

<ul class="space-y-2">
    <li>
        <a href="/" class="flex items-center p-2 text-base font-normal text-gray-900 rounded-lg hover:bg-pink-300">
            <svg class="w-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z"/></svg>
            <span class="ml-3">หน้าหลัก</span>
        </a>
    </li>
    
    {
        menu.map(item => {
                let isActive = url.indexOf(item.url) > -1;
                return (
                    <li>
                        <a href={item.url}
                            class:list={[
                                'flex items-center p-2 text-base font-normal text-gray-900 rounded-lg hover:bg-pink-300', 
                                {'bg-pink-300':isActive}
                            ]}>
                            <span class="ml-3">{item.name}</span>
                        </a>
                    </li>
                )
            }
        )
    }
</ul>


Copyright © 2023 Devcode Code Example - Powered by www.doesystem.com