اذهب إلى المحتوى
  • 0

رابط ال api في axios

Rayden Storm

السؤال

أحيانا أرى استخدامات للرابط في axios مثلا بدل 

http://localhost:3000/api/posts

يستعملون posts مباشرتا

import React, { useState, useEffect } from 'react';
import axios from 'axios';

export default function Logo() {
  const [data, setData] = useState();

  useEffect(() => {
    axio.get('/posts').then((res) => {
      setData(res.data);
    });
  }, []);

  return (
    <div>
      {data &&
        data.map((d) => (
          <div>
            <img src={data.image} alt="image" />
            <h1>{data.tilte}</h1>
            <p>{data.body}</p>
          </div>
        ))}
    </div>
  );
}

كيف يمكن تحقيق ذلك?

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يوجد طريقتين لتحقيق ذلك الأولى هي في الحالة العامة حيث يمكنك تعيين proxy في ملف package.json بهذه الطريقة

"proxy":"http://localhost:4000/api/"

بعدها يمكنك الاتصال بال api عبر تعيين فقط الجزء الذي يأتي بعد /api

import React, { useState, useEffect } from 'react';

export default function Logo() {
  const [data, setData] = useState();


  useEffect(() => {
    fetch('/posts').then((res) => {
      setData(res.data);
    });
  }, []);

  return (
    <div>
      {data &&
        data.map((d) => (
          <div>
            <img src={data.image} alt="image" />
            <h1>{data.tilte}</h1>
            <p>{data.body}</p>
          </div>
        ))}
    </div>
  );
}

وهناك الطريقة الثانية وهي خاصة بالاعدادات فمثلا في axios يمكنك أن تعين الاعدادت ومن ضمن الاعدادات المتوفرة هناك الرابط القاعدي

axiosConfig.js

import axios from 'axios';

const instance = axios.create({
    baseURL: 'http://localhost:4000/api/'
});

export default instance;

يمكنك استيراد axios من الملف الذي في الاعلى وسيكون متوفر لديه رابط قاعدي ويمكنك استخدام فقط الجزء الذي يأتي بعد /api في اتصالاتك بالسيرفر

import React, { useState, useEffect } from 'react';
import axios from './axiosConfig';

export default function Logo() {
  const [data, setData] = useState();

  useEffect(() => {
    axio.get('/posts').then((res) => {
      setData(res.data);
    });
  }, []);
 

  return (
    <div>
      {data &&
        data.map((d) => (
          <div>
            <img src={data.image} alt="image" />
            <h1>{data.tilte}</h1>
            <p>{data.body}</p>
          </div>
        ))}
    </div>
  );
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...