Langsung ke konten utama

Mengambil data JSON Menggunakan NextJS di Fitur "Edit Toko"


Ternyata bahasa pemograman Next JS bisa implementasikan sehingga bisa digunakan sebagai alat untuk mengolah data yang disebut json, dengan sedikit tambahan beberapa fungsi pada proyek Next JS kamu, kamu bisa mengolah data json sesuai keinginan kamu, contoh sederhanya seperti mengambil sebuah data yang dimana data dari post dan get tersebut didapat dari data json.

JSON atau singkatan dari JavaScript Object Notation, adalah suatu format data ringkas pertukaran data komputer layaknya sebuah database, formatnya yang hanya dalam bentuk teks membuat manusia dapat membacanya dengan mudah tetapi dengan kondisi data json tersebut dibuat menjadi tersusun terlebih dahulu, data json ini biasanya digunakan oleh para developer untuk memberikan sebuah akses restfull api atau sebuah situs yang bertujuan untuk berbagi data yang dia miliki dalam bentuk json.

 

Fitur "Edit Toko"

Pertama kita tambahkan folder dengan nama "dashboard", didalam folder dashboard membuat folder editToko lalu buat file html biasa dengan nama index.html. didalam file tersebut cara mengambil data JSON menggunakan post dan get. berikut source code html:

import Head from 'next/head'
import Link from 'next/link'

export const getStaticProps = async (context) => {
const res = await fetch('http://localhost:3004/profile/');
const data = await res.json();


return {
props : { profile : data }
}
}

const Transaksi = ({ profile }) => {
return (
<div>
<Head>
<title>Edit Toko</title>
</Head>
<div class="tile is-ancestor">
<div class="tile is-4 is-vertical is-parent">
<div class="tile is-child">
<div className="block my-0">
<div className="columns is-mobile is-centered is-flex btm
                -bordergray m-1">
<Link href="/dashboard/editToko">
<button className="button is-white is-size-5-mobile is-size-3
                    -desktop transaksi">Edit Toko</button>
</Link>
</div>
<div className="columns is-mobile is-centered is-flex btm
                -bordergray m-1">
<Link href="/dashboard/transaksi">
<button className="button is-white is-size-5-mobile is-size-3
                    -desktop transaksi">Transaksi</button>
</Link>
</div>
<div className="columns is-mobile is-centered is-flex btm
                -bordergray m-1">
<Link href="/dashboard/pendapatan">
<button className="button is-white is-size-5-mobile is-size-3
                    -desktop transaksi" >Pendapatan</button>
</Link>
</div>
</div>
</div>
</div>
<div className="tile is-parent">
<div className="tile is-child">
<div className="has-text-centered is-flex-direction-column bg-green 
                m-5 p-5">
<div className="is-flex is-justify-content-center">
<figure className="image is-128x128">
<img className="is-rounded bg-white" src="/user.png"/>
</figure>
</div>
<div className="is-align-items-center py-3">
<Link href="#">
<a className="button is-size-6 green bg-gray">Ubah Profile
</a>
</Link>
</div>
</div>
{profile.map(x => (
<div className="m-5">
<div className="is-flex is-justify-content-space-between is-align
                -items-center py-1 btm-bordergray">
<div className="mx-5">Nama Toko</div>
<div>
<a class="panel-block mx-0">
<div>{x.namaToko}</div>
<div className="is-flex is-align-items-center">
<span class="panel-icon">
<i class="fas fa-chevron-right" aria-hidden="true"></i>
</span>
</div>
</a>
</div>
</div>
<div className="is-flex is-justify-content-space-between is-align
                -items-center py-1 btm-bordergray">
<div className="mx-5">No. Handphone</div>
<div>
<a class="panel-block">
<div>{x.noHp}</div>
<div className="is-flex is-align-items-center">
<span class="panel-icon">
<i class="fas fa-chevron-right" aria-hidden="true"></i>
</span>
</div>
</a>
</div>
</div>
<div className="is-flex is-justify-content-space-between is-align
                -items-center py-1 btm-bordergray">
<div className="mx-5">Email</div>
<div>
<a class="panel-block">
<div>{x.email}</div>
<div className="is-flex is-align-items-center">
<span class="panel-icon">
<i class="fas fa-chevron-right" aria-hidden="true"></i>
</span>
</div>
</a>
</div>
</div>
<div className="is-flex is-justify-content-space-between is-align
                -items-center btm-bordergray py-2">
<div className="mx-5">Atur Password</div>
<a class="panel-block">
<div>{x.pass}</div>
<span class="panel-icon">
<i class="fas fa-chevron-right" aria-hidden="true"></i>
</span>
</a>
</div>
</div>
))
}
</div>
</div>
</div>
</div>
);
}

export default Transaksi;

 

Kedua membuat file db.json yang berisikan untuk data.

"profile": [
{
"id": 1,
"namaToko": "ryan_wlijo",
"noHp": "+628*****11812",
"email": "nu***@gmail.com",
"pass": "********"
}
]
}

 

Output



Komentar

Postingan populer dari blog ini

Pembelajaran Dasar React Bagi Pemula

  Apa itu Reactjs? Reactjs adalah sebuah library yang dibuat oleh Facebook untuk membuat UI (user interface) pada Web Mobile juga. Banyak orang menyebutnya sebagai framework , namun secara teknis.. Reactjs bukanlah sebuah framework. Melainkan sebuah library untuk membuat UI.   Oke, mari kita coba membuat aplikasi dengan Reactjs pertama kita buat file html biasa dengan nama hello-world.html , di dalam body kita akan menampilkan teks. <! DOCTYPE html > < html > < head > < meta charset = "utf-8" /> < title > Belajar Reactjs </ title > < script src = "https://unpkg.com/react@16/umd/react.production.min.js" >      </ script > < script src = "https://unpkg.com/react-dom@16/umd/react-dom.production      .min.js" ></ script > < script src = "https://unpkg.com/babel-standalone@6.15.0/babel.min.js" >      </ script > </ head > < bod...

Penambahan Function Pop Up Edit Toko di NextJS

      Apa itu Next.js?  Next.js merupakan sebuah React framework yang dibentuk buat mengatasi kasus client-side rendering yang dimiliki React. Sebuah halaman website yang dibentuk memakai React ‘terasa ringan’ lantaran tampilan website sangat interaktif.  Selain itu, ketika data berubah, React menggunakan efisien akan mengupdate bagian menurut halaman website yang memang perlu diupdate tanpa perlu reload satu halaman penuh.  Untuk menerima itu seluruh, client wajib load seluruh file JavaScript sebelum konten halaman ditampilkan. apabila file JS relatif akbar maka ketika yang diperlukan buat load pertama kali pula sebagai lebih lama.  Masalah lain menurut client-side rendering merupakan SEO, terdapat kemungkinan web crawler berusaha mengindex halaman yang belum terselesaikan dirender sepenuhnya (lantaran ketika load yang lama). Dan menduga web tadi blank.  Kedua kasus diatas bisa diselesaikan menggunakan teknik pre-rendering. Yaitu ...

Pembuatan halaman Home dengan NextJS

      Apa itu Next.js?  Next.js merupakan sebuah React framework yang dibentuk buat mengatasi kasus client-side rendering yang dimiliki React. Sebuah halaman website yang dibentuk memakai React ‘terasa ringan’ lantaran tampilan website sangat interaktif.  Selain itu, ketika data berubah, React menggunakan efisien akan mengupdate bagian menurut halaman website yang memang perlu diupdate tanpa perlu reload satu halaman penuh.  Untuk menerima itu seluruh, client wajib load seluruh file JavaScript sebelum konten halaman ditampilkan. apabila file JS relatif akbar maka ketika yang diperlukan buat load pertama kali pula sebagai lebih lama.  Masalah lain menurut client-side rendering merupakan SEO, terdapat kemungkinan web crawler berusaha mengindex halaman yang belum terselesaikan dirender sepenuhnya (lantaran ketika load yang lama). Dan menduga web tadi blank.  Kedua kasus diatas bisa diselesaikan menggunakan teknik pre-rendering. Yaitu ...