🔧 مميز

Astro

إطار عمل للمحتوى (Content-Focused Framework)

(5/5)
👁️ 4 مشاهدة
📅 02 Jul 2026
⚛️ React 💚 Vue.js 🅰️ Angular 🧡 Svelte 🌐 عام

مستوى الخبرة المطلوب:

🌱 مبتدئ ⚡ متوسط 🚀 محترف 🏢 مؤسسي
🔗 زيارة الموقع الرسمي
5
تقييم المستخدمين
التصنيف 🔧 Meta-Frameworks
المشاهدات 4
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

Astro هو إطار عمل JavaScript مُحسّن لبناء مواقع المحتوى السريعة. يتميز بـ "Islands Architecture" حيث يسمح باستخدام مكونات من إطارات مختلفة (React, Vue, Svelte, إلخ) في نفس الصفحة مع إرسال JavaScript فقط للمكونات التفاعلية. Astro يوفر Zero JavaScript افتراضياً، مما يجعله مثالياً للمدونات، مواقع التو...

🎯 يستخدم في

مجالات استخدام هذه الأداة

المدونات ومواقع المحتوى

مواقع التوثيق

مواقع التسويق والهبوط

مواقع التجارة الإلكترونية (e-commerce)

مواقع الشركات والمؤسسات

المميزات

أبرز مميزات هذه الأداة

Zero JavaScript افتراضياً (Islands Architecture)

Framework-agnostic (يدعم React

Vue

Svelte

إلخ)

Static Site Generation (SSG) عالي الأداء

Content Collections محسّة

Markdown و MDX مدمج

View Transitions API مدمج

Image و Font optimization تلقائي

Deploy لأي static host

⚠️ العيوب

نقاط يجب مراعاتها

×

ليس مناسباً للتطبيقات التفاعلية المعقدة

×

أقل مرونة من Next.js للتطبيقات الكبيرة

×

بعض الميزات تحتاج مكونات JavaScript

×

موارد تعليمية أقل من Next.js

🔄 البدائل

أدوات بديلة يمكنك استخدامها

Next.js
Eleventy
Hugo

💻 مثال على الاستخدام

كيفية استخدام هذه الأداة

Example Code
---
// pages/index.astro
import { getCollection } from 'astro:content';
import PostCard from '../components/PostCard.astro';

const posts = await getCollection('blog');
const recentPosts = posts.sort((a, b) => 
  b.data.pubDate.getTime() - a.data.pubDate.getTime()
).slice(0, 5);
---

<html lang="ar">
  <head>
    <title>مدونتي</title>
  </head>
  <body>
    <h1>آخر المقالات</h1>
    <ul>
      {recentPosts.map(post => (
        <PostCard post={post} />
      ))}
    </ul>
  </body>
</html>

---
// components/Counter.tsx (React component)
---
import { useState } from 'react';

export default function Counter() {
  const [count, setCount] = useState(0);
  return (
    <div>
      <p>العداد: {count}</p>
      <button onClick={() => setCount(count + 1)}>زيادة</button>
    </div>
  );
}

// Usage in Astro
---
import Counter from './Counter';
---
<Counter client:load />

📚 أدوات أخرى في Meta-Frameworks

قد يعجبك أيضاً