<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Na Bosseu</title>
    <description>The latest articles on Forem by Na Bosseu (@tan_jung).</description>
    <link>https://forem.com/tan_jung</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F973944%2F445464c8-473f-4f5c-8a0a-284662e095ed.jpg</url>
      <title>Forem: Na Bosseu</title>
      <link>https://forem.com/tan_jung</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tan_jung"/>
    <language>en</language>
    <item>
      <title>Next JS + SWR + Axios</title>
      <dc:creator>Na Bosseu</dc:creator>
      <pubDate>Wed, 15 Feb 2023 02:34:18 +0000</pubDate>
      <link>https://forem.com/tan_jung/next-js-swr-axios-3ae6</link>
      <guid>https://forem.com/tan_jung/next-js-swr-axios-3ae6</guid>
      <description>&lt;p&gt;Next JS adalah Framework Javascript yang berfokus pada SSR yang dibangun berdasarkan Framework React JS. Biasanya dibangun untuk tujuan pembuatan Company Profile ataupun Landing Page.&lt;/p&gt;

&lt;p&gt;SWR adalah React Hook untuk fetching data yang direkomendasikan langsung oleh Next JS. Jika React Query hanya untuk React JS sedangkan SWR bisa untuk React JS maupun Next JS.&lt;/p&gt;

&lt;p&gt;Bahan yang dibutuhkan:&lt;br&gt;
• Next JS&lt;br&gt;
• SWR&lt;br&gt;
• Axios&lt;/p&gt;

&lt;p&gt;Tutorial ini akan dibagi dalam beberapa sesi, yaitu:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Buat File Axios&lt;/li&gt;
&lt;li&gt;  Buat File Service&lt;/li&gt;
&lt;li&gt;  Integrasi&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Buat File Axios&lt;br&gt;
Fungsi file ini bertujuan untuk sebagai config services, agar mudah mengatur baseUrl maupun token.&lt;br&gt;
services &amp;gt; axios.js&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import axios from 'axios'

const instance = () =&amp;gt; axios.create({
  baseURL: 'http://localhost:3000/api',
  headers: {
    'Content-Type': 'application/json'
  }
})

const onGet = (url, params) =&amp;gt; instance().get(url, { params: params })

export { onGet }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Buat File Service&lt;br&gt;
File service ini berbeda dengan axios, jika axios adalah config nya, maka file service ini adalah yang akan menggunakan config yang mana adalah axios yang tadi sudah dibuat.&lt;br&gt;
Biasanya diletakan dalam satu feature&lt;br&gt;
features &amp;gt; home &amp;gt; service.js&lt;br&gt;
import { onGet } from '@/services/axios'&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const onGetGames = async (url, params) =&amp;gt; {
  try {
    const send = await onGet(url, params)

    return { status: true, data: send }
  } catch (error) {
    return { status: false, data: error.response }
  }
}

export { onGetGames }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;mulailah menggunakan try catch untuk melakukan request&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Integrasi&lt;br&gt;
Langkah selanjutnya adalah mulai melakukan integrasi antara config, service dan halaman yang akan ditargetkan untuk me-request data, pada contoh ini kita akan sebut Home.&lt;br&gt;
features &amp;gt; home &amp;gt; Home.js&lt;br&gt;
import useSWR from 'swr'&lt;br&gt;
import { onGetGames } from './services'&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const Home = () =&amp;gt; {
  const { data: games, error, isLoading } = useSWR('/games', onGetGames)

  if (error) return 'An error has occurred.'
  if (isLoading) return 'Loading...'

  return (
    &amp;lt;section&amp;gt;
      &amp;lt;h1&amp;gt;
        List Gamedua
      &amp;lt;/h1&amp;gt;
      &amp;lt;ul&amp;gt;
        {(Array.isArray(games.data.data)) &amp;amp;&amp;amp; games.data.data.map((item, itemIndex) =&amp;gt; (
          &amp;lt;li key={itemIndex}&amp;gt;{item.name}&amp;lt;/li&amp;gt;
        ))}
      &amp;lt;/ul&amp;gt;
    &amp;lt;/section&amp;gt;
  )
}

export default Home
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pada line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { data: games, error, isLoading } = useSWR('/games', onGetGames)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bila dilihat SWR memiliki bermacam return values, diantaranya yang sering digunakan:&lt;br&gt;
• data = value response dari api&lt;br&gt;
• error = error response dari api&lt;br&gt;
• isLoading = loading ketika melakukan request&lt;br&gt;
SWR juga memiliki 2 parameters mandatory, yang dimana ada:&lt;br&gt;
• key (parameter 1) = berguna untuk mem-parsing url&lt;br&gt;
• fetcher (parameter 2) = service yang akan dieksekusi&lt;br&gt;
Kelebihan&lt;br&gt;
• SWR mampu me-revalidate (melakukan request otomatis) ketika component mount dan windows focus&lt;br&gt;
• Dapat melakukan otomatis revalidate dengan interval&lt;br&gt;
• Dapat melakukan revalidate jika error dan dapat dibatasi&lt;br&gt;
Kekurangan&lt;br&gt;
• Tidak mampu revalidate berdasarkan url yang terupdate&lt;/p&gt;

&lt;p&gt;Itu adalah pengenalan singkat bagaimana cara integrasi Next, SWR dan Axios. Jika kalian ingin menggunakan React Query pada Next tapi React Query tidak mendukung maka SWR lah solusinya.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>frontend</category>
      <category>indonesia</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>is the frontend developer especially react developer needs to implement unit testing?</title>
      <dc:creator>Na Bosseu</dc:creator>
      <pubDate>Fri, 18 Nov 2022 01:46:07 +0000</pubDate>
      <link>https://forem.com/tan_jung/is-the-frontend-developer-especially-react-developer-needs-to-implement-unit-testing-4036</link>
      <guid>https://forem.com/tan_jung/is-the-frontend-developer-especially-react-developer-needs-to-implement-unit-testing-4036</guid>
      <description>&lt;p&gt;is the frontend developer especially react developer needs to implement unit testing? what for? give me explain and examples. Thx master...&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>unittesting</category>
    </item>
  </channel>
</rss>
