برنامه نویسی

واکشی و نمایش داده ها در زاویه ای با استفاده از httpresource – جامعه dev

رسیدگی به داده های واکشی و نمایش در برنامه های زاویه ای برای ایجاد تجربیات کاربر پویا و تعاملی بسیار مهم است. در این پست وبلاگ ، ما نحوه استفاده را بررسی خواهیم کرد httpResource برای واکشی داده ها از یک API و نمایش آن در قالب کاربر پسند.

ما یک برنامه وبلاگ ساده ایجاد خواهیم کرد که پست های API JsonPlaceholder را واگذار می کند و آنها را در یک طرح شبکه نمایش می دهد.

بررسی اجمالی پروژه

ما یک برنامه زاویه ای ساخته ایم که:

  • استفاده می کند Angular CLI (V19.2.0) برای راه اندازی پروژه
  • پست های وبلاگ را از API JsonPlaceholder دریافت می کند.
  • پست ها را در یک طرح شبکه با استفاده از خطا نشان می دهد.
  • لوازم جانبی اجزای مستقل برای معماری تمیزتر.

بیایید به جزئیات شیرجه بزنیم!

1. تنظیم پروژه زاویه ای

برای ایجاد یک برنامه زاویه ای ، اگر قبلاً این کار را نکرده اید ، Angular CLI را نصب کنید:

npm install -g @angular/cli
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سپس ، یک پروژه جدید ایجاد کنید:

ng new angular-examples
cd angular-examples
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سرور توسعه را شروع کنید:

ng serve
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اکنون ، باز http://localhost:4200/ در مرورگر خود

2. ایجاد مؤلفه وبلاگ

مؤلفه وبلاگ پست های JsonPlaceHolder را به دست می آورد و آنها را در یک طرح شبکه به نمایش می گذارد.

کد مؤلفه: app.component.ts

import { httpResource } from '@angular/common/http';
import { Component, computed, Resource } from '@angular/core';

export interface Post {
  userId: number;
  id: number;
  title: string;
  body: string;
}

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrl: './app.component.css',
})
export class AppComponent {
  title = 'angular-blog';

  apiUrl = 'https://jsonplaceholder.typicode.com';

  posts = httpResource<Post[]>(`${this.apiUrl}/posts`);
  error = computed(() => {
    const error = this.posts.error() as Error;
    return error ? error.message : null;
  });

  constructor() {}
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

توضیح

  • ما تعریف می کنیم Post رابط برای مدل سازی پاسخ API.
  • ما استفاده می کنیم httpResource برای واکشی پست های وبلاگ.
  • computed() برای رسیدگی به خطاهای API به صورت پویا استفاده می شود.

3 نمایش پست های وبلاگ

پست های واکشی در نمایش داده می شوند app.component.html پرونده

کد الگوی: app.component.html

class="container">
Blog Posts @if (posts.isLoading()) {
class="loading"> Loading posts...

class="spinner">

} @else { @if (error()) {
class="error"> Error loading posts: {{ error() }}
} @else {
class="posts-grid"> @for (post of posts.value(); track post.id) {
class="post-card">

{{ post.title }} {{ post.body }}
Post ID: {{ post.id }}

}
} }
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ویژگی های کلیدی

  • نمایش می دهد a در حال بارگیری اسپینر در حالی که پست ها را واکشی می کنید.
  • نشان می دهد پیام خطا در صورت عدم موفقیت API.
  • کاربردهای @for دستورالعمل تکرار از طریق پست ها و نمایش آنها در یک طرح شبکهبشر

4. یک ظاهر طراحی شده وبلاگ

ما استفاده می کنیم شبکه CSS برای سبک کردن طرح وبلاگ در app.component.cssبشر

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

header {
  text-align: center;
  margin-bottom: 2rem;
}

.loading, .error {
  text-align: center;
  padding: 2rem;
}

.posts-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}

.post-card {
  background: white;
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s;
}

.post-card:hover {
  transform: translateY(-5px);
}

.post-card h2 {
  color: #2c3e50;
  font-size: 1.5rem;
}

.post-card p {
  color: #34495e;
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این باعث می شود وبلاگ پاسخگو ، بصری جذاب و کاربر پسندبشر

5. پیکربندی زاویه ای برای تماس های API

برای فعال کردن درخواست های HTTP ، به روزرسانی کنید app.config.ts:

import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { provideHttpClient } from '@angular/common/http';

export const appConfig: ApplicationConfig = {
  providers: [
    provideZoneChangeDetection({ eventCoalescing: true }),
    provideRouter([]),
    provideHttpClient(),
  ],
};
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این مشتری HTTP Angular را پیکربندی می کند برای رسیدگی به تماس های API به طور کارآمد.

6. در حال اجرا و آزمایش برنامه

برای آزمایش برنامه:

ng serve
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بازدید http://localhost:4200/ برای دیدن پست های وبلاگ ارائه شده به صورت پویا.

پایان

ما با موفقیت ساخته ایم وبلاگ زاویه ای ساده که:

  • پست های وبلاگ را از یک API خارجی دریافت می کند.
  • پست ها را به صورت پویا با نمایش می دهد رسیدگی به خطابشر
  • کاربردهای اجزای مستقل زاویه ای برای مدولار
  • ویژگی یک ظاهر طراحی شده پاسخگو با شبکه CSSبشر

کاوش در کد

برای بررسی جزئیات کد به مخزن GitHub مراجعه کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا