Trang Designer – Thiết kế website – Mua bán theme giá rẻ, plugin giá rẻ – Dịch vụ thiết kế website giá rẻ chuyên nghiệp chuẩn SEO – Mua bán theme giá rẻ, plugin giá rẻ chính hãng 100% từ nhà cung cấp, hỗ trợ update trọn đời

Dưới đây là hướng dẫn chi tiết để tạo một website sử dụng giao diện AdminLTE (một template quản trị phổ biến) kết hợp với ReactJS. AdminLTE cung cấp giao diện đẹp mắt và nhiều thành phần UI sẵn có, trong khi ReactJS giúp bạn xây dựng ứng dụng web động và hiệu quả. Chúng ta sẽ tích hợp AdminLTE vào một dự án ReactJS từng bước.
Hướng dẫn tạo website sử dụng AdminLTE với ReactJS
Hướng dẫn tạo website sử dụng AdminLTE với ReactJS

Thiết lập môi trường ReactJS

Trước tiên, bạn cần cài đặt môi trường ReactJS. Nếu chưa có Node.js, hãy tải và cài đặt từ nodejs.org.

  1. Tạo dự án ReactJS: Mở terminal và chạy lệnh sau để tạo một dự án React mới bằng create-react-app:
npx create-react-app adminlte-react
cd adminlte-react

Khởi động dự án: Chạy lệnh sau để kiểm tra dự án hoạt động:

npm start

Truy cập http://localhost:3000 trên trình duyệt để xem ứng dụng mặc định.

Tải và tích hợp AdminLTE

AdminLTE không có gói React chính thức, nhưng chúng ta có thể tích hợp các tệp tĩnh (CSS, JS) của nó vào dự án React.

  1. Tải AdminLTE:
  2. Sao chép tài nguyên AdminLTE:
    • Từ thư mục giải nén, sao chép hai thư mục dist và plugins vào thư mục public của dự án React (adminlte-react/public).
    • Cấu trúc thư mục sẽ trông như sau:
adminlte-react/
├── public/
│   ├── dist/
│   ├── plugins/
│   ├── index.html
│   └── ...
├── src/
└── ...

Cập nhật index.html: Mở tệp public/index.html và thêm các liên kết CSS/JS của AdminLTE vào phần <head> và <body>. Dưới đây là ví dụ:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>AdminLTE React</title>

  <!-- Google Font: Source Sans Pro -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="%PUBLIC_URL%/plugins/fontawesome-free/css/all.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="%PUBLIC_URL%/dist/css/adminlte.min.css">
</head>
<body class="hold-transition sidebar-mini">
  <div id="root"></div>

  <!-- jQuery -->
  <script src="%PUBLIC_URL%/plugins/jquery/jquery.min.js"></script>
  <!-- Bootstrap 4 -->
  <script src="%PUBLIC_URL%/plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
  <!-- AdminLTE App -->
  <script src="%PUBLIC_URL%/dist/js/adminlte.min.js"></script>
</body>
</html>

Lưu ý: %PUBLIC_URL% đảm bảo đường dẫn chính xác khi build ứng dụng.

Tạo cấu trúc giao diện với React Components

AdminLTE có các thành phần chính như Header, Sidebar, Content và Footer. Chúng ta sẽ chia nhỏ giao diện thành các React components.

  1. Tạo các component: Trong thư mục src, tạo thư mục components và thêm các tệp sau:
    • Header.js
    • Sidebar.js
    • Content.js
    • Footer.js
  2. Ví dụ mã cho từng component:
    • Header.js:
import React from 'react';

const Header = () => {
  return (
    <nav className="main-header navbar navbar-expand navbar-white navbar-light">
      <ul className="navbar-nav">
        <li className="nav-item">
          <a className="nav-link" data-widget="pushmenu" href="#!" role="button">
            <i className="fas fa-bars"></i>
          </a>
        </li>
      </ul>
      <ul className="navbar-nav ml-auto">
        <li className="nav-item">
          <a className="nav-link" href="#!">
            <i className="fas fa-sign-out-alt"></i> Logout
          </a>
        </li>
      </ul>
    </nav>
  );
};

export default Header;

Sidebar.js:

import React from 'react';

const Sidebar = () => {
  return (
    <aside className="main-sidebar sidebar-dark-primary elevation-4">
      <a href="#!" className="brand-link">
        <span className="brand-text font-weight-light">AdminLTE React</span>
      </a>
      <div className="sidebar">
        <nav className="mt-2">
          <ul className="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu">
            <li className="nav-item">
              <a href="#!" className="nav-link">
                <i className="nav-icon fas fa-tachometer-alt"></i>
                <p>Dashboard</p>
              </a>
            </li>
            <li className="nav-item">
              <a href="#!" className="nav-link">
                <i className="nav-icon fas fa-users"></i>
                <p>Users</p>
              </a>
            </li>
          </ul>
        </nav>
      </div>
    </aside>
  );
};

export default Sidebar;

Content.js:

import React from 'react';

const Content = () => {
  return (
    <div className="content-wrapper">
      <div className="content-header">
        <div className="container-fluid">
          <h1 className="m-0">Dashboard</h1>
        </div>
      </div>
      <div className="content">
        <div className="container-fluid">
          <div className="card">
            <div className="card-body">
              <p>Welcome to AdminLTE with ReactJS!</p>
            </div>
          </div>
        </div>
      </div>
    </div>
  );
};

export default Content;

Footer.js:

import React from 'react';

const Footer = () => {
  return (
    <footer className="main-footer">
      <div className="float-right d-none d-sm-block">
        <b>Version</b> 1.0.0
      </div>
      <strong>Copyright &copy; 2025.</strong> All rights reserved.
    </footer>
  );
};

export default Footer;

Kết hợp các component trong App.js: Mở src/App.js và thay thế nội dung bằng mã sau:

import React from 'react';
import Header from './components/Header';
import Sidebar from './components/Sidebar';
import Content from './components/Content';
import Footer from './components/Footer';

function App() {
  return (
    <div className="wrapper">
      <Header />
      <Sidebar />
      <Content />
      <Footer />
    </div>
  );
}

export default App;

Kiểm tra và tinh chỉnh

  1. Chạy ứng dụng:
npm start

Truy cập http://localhost:3000 để xem giao diện AdminLTE tích hợp với React.

Tinh chỉnh:

  • Nếu sidebar không hoạt động (do thiếu jQuery), hãy đảm bảo các script trong index.html được tải đúng.
  • Thêm các thành phần khác của AdminLTE (như bảng, biểu đồ) bằng cách tham khảo tài liệu chính thức và tạo thêm component React.

Tối ưu hóa (Tùy chọn)

  • Sử dụng gói NPM: Thay vì sao chép thủ công, bạn có thể thử gói adminlte-2-react hoặc adminlte-reactjs từ NPM:
npm install adminlte-2-react

Tuy nhiên, các gói này có thể không hỗ trợ đầy đủ AdminLTE 3, nên cần kiểm tra tài liệu của gói.

Tách CSS: Để tối ưu hiệu suất, bạn có thể nhập CSS trực tiếp trong index.js thay vì index.html:

import './index.css';
import '../public/dist/css/adminlte.min.css';
import '../public/plugins/fontawesome-free/css/all.min.css';

Thêm tính năng động: Sử dụng React Router để tạo các trang khác nhau (Dashboard, Users, Settings) và Redux để quản lý trạng thái nếu dự án phức tạp.

Kết luận

Bạn đã tạo thành công một website sử dụng AdminLTE với ReactJS! Cách tiếp cận này kết hợp sức mạnh của React (tính module, tái sử dụng) với giao diện đẹp mắt của AdminLTE. Để mở rộng, bạn có thể thêm các tính năng như gọi API, xác thực người dùng hoặc tích hợp biểu đồ (Chart.js) từ plugin của AdminLTE.

Nếu bạn cần hướng dẫn thêm về cách tích hợp tính năng cụ thể (như bảng dữ liệu hoặc biểu đồ), hãy cho mình biết nhé!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

pzf-icon