siapkan file root inde.js/App.js biasanya
oiya untuk data API nya kalian bisa menggunakan https://jsonplaceholder.typicode.com/users
Root index.js
- import React from "react";
- import ReactDOM from "react-dom";
- import Navbar from "./component/Navbar";
- import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom";
- import HomePage from "./pages/home-pages";
- import ContactPage from "./pages/contact-pages";
- import AboutPage from "./pages/about-pages";
- import "./styles.css";
- function App() {
- return (
- <Router>
- <div className="App">
- <Navbar />
- <Route path="/" exact component={HomePage} />
- <Route path="/about" exact component={AboutPage} />
- <Route path="/contact" exact component={ContactPage} />
- </div>
- </Router>
- );
- }
- const rootElement = document.getElementById("root");
- ReactDOM.render(<App />, rootElement);
buat folder componen kemudian buat file disini saya membuat file navbar.js
- import React, { Component } from "react";
- import { Link } from "react-router-dom";
- export default class Navbar extends Component {
- constructor(props) {
- super(props);
- this.state = {
- menus: [
- { label: "Home", path: "/" },
- { label: "About", path: "/about" },
- { label: "Contact", path: "/contact" }
- ]
- };
- }
- render() {
- return (
- <ul>
- {this.state.menus.map(menu => (
- <li style={styles.menuLi}>
- <Link to={menu.path}>{menu.label}</Link>
- </li>
- ))}
- </ul>
- );
- }
- }
- const styles = {
- menuLi: {
- display: "inline-block",
- padding: "10px",
- background: "#eaeaea"
- }
- };
buat folder pages untuk halamannya, disini asaya membuat folder home-pages.js about-pages.js dan contact-pages.js
- import React, { Component } from "react";
- import axios from "axios";
- class HomePage extends Component {
- constructor(props) {
- super(props);
- this.state = {
- users: []
- };
- }
- componentWillMount() {
- const url = "https://jsonplaceholder.typicode.com/users";
- axios.get(url).then(users => {
- //data dari API console.log
- console.log(users.data);
- this.setState({
- users: users.data
- });
- });
- }
- render() {
- const { users } = this.state;
- return (
- <div>
- {users.length < 1 && <div>Loading...</div>}
- {users.map((user, idx) => {
- return (
- <div key={idx}>
- <div> Name : {user.name}</div>
- </div>
- );
- })}
- </div>
- );
- }
- }
- export default HomePage;
jalankan maka hasilnya akan seperti ini
oke sekian next kita akan membuat menggunakan method post
wassalamualaiku wr.wb jangan lupa titik koma :D