🔧

Analog

إطار عمل Angular كامل (Full-Stack Angular Framework)

(2/5)
👁️ 6 مشاهدة
📅 02 Jul 2026
🅰️ Angular

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

🔗 زيارة الموقع الرسمي
2
تقييم المستخدمين
التصنيف 🔧 Meta-Frameworks
المشاهدات 6
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

Analog هو إطار عمل full-stack لـ Angular مشابه لـ Next.js أو Nuxt. يوفر file-based routing، server-side rendering (SSR)، و API routes. مبني على Vite و Nitro مما يوفر تجربة تطوير سريعة. Analog يهدف لتبسيط بناء تطبيقات Angular كاملة مع ميزات enterprise مثل static generation و content management. يدعم...

🎯 يستخدم في

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

تطبيقات Angular كاملة

مواقع التجارة الإلكترونية

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

تطبيقات SaaS

لوحة التحكم الإدارية

المميزات

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

File-based routing

Server-Side Rendering (SSR)

Static Site Generation (SSG)

API routes

Vite-powered (سرعة عالية)

Markdown و content support

Angular standalone components

Nitro server engine

⚠️ العيوب

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

×

جديد نسبياً

×

مجتمع صغير

×

موارد تعليمية محدودة

×

أقل شهرة من Angular الأساسي

🔄 البدائل

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

Angular (بدون Analog)
Nx
Spartan

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

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

Example Code
// src/app/pages/index.page.ts
import { Component } from '@angular/core';
import { injectQuery } from '@analogjs/trpc';

@Component({
  standalone: true,
  template: `
    <h1>المقالات</h1>
    <ul>
      @for (post of posts(); track post.id) {
        <li>
          <a [routerLink]="['/posts', post.id]">
            {{ post.title }}
          </a>
        </li>
      }
    </ul>
  `
})
export default class HomePage {
  posts = injectQuery(() => ['posts'], () => 
    fetch('/api/posts').then(r => r.json())
  );
}

// src/app/pages/posts/[id].page.ts
import { Component } from '@angular/core';
import { injectRoute } from '@analogjs/router';

@Component({
  standalone: true,
  template: `
    <article>
      <h1>{{ post()?.title }}</h1>
      <p>{{ post()?.content }}</p>
    </article>
  `
})
export default class PostPage {
  route = injectRoute();
  post = injectQuery(() => ['post', this.route.params.id], () =>
    fetch(`/api/posts/${this.route.params.id}`).then(r => r.json())
  );
}

// src/server/routes/posts.ts
import { defineEventHandler } from 'h3';

export default defineEventHandler(async (event) => {
  const posts = await db.post.findMany();
  return posts;
});

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

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