Code Splitting di React: Pembagian Bundle Berbasis Rute untuk Kinerja Optimal | MLOG | MLOG

Internasionalisasi (i18n) dan Code Splitting

Untuk aplikasi yang mendukung banyak bahasa, code splitting dapat digunakan untuk memuat sumber daya spesifik bahasa sesuai permintaan. Ini dapat secara signifikan mengurangi waktu muat awal aplikasi, karena pengguna hanya perlu mengunduh sumber daya untuk bahasa yang mereka pilih. Misalnya, daripada memuat semua file bahasa sekaligus, Anda dapat memuat file bahasa yang relevan hanya ketika pengguna beralih ke bahasa yang berbeda.

Salah satu pendekatannya adalah menggunakan dynamic import untuk memuat file bahasa berdasarkan lokal pengguna. Anda kemudian dapat menggunakan pustaka seperti i18next untuk mengelola proses terjemahan.

Contoh:

            
import i18next from 'i18next';
import { initReactI18next } from 'react-i18next';

const loadLanguage = async (lng) => {
  try {
    const resources = await import(`./locales/${lng}/translation.json`);
    i18next.addResourceBundle(lng, 'translation', resources.default);
  } catch (error) {
    console.error(`Gagal memuat bahasa ${lng}:`, error);
  }
};

i18next
  .use(initReactI18next)
  .init({
    lng: 'en',
    fallbackLng: 'en',
    interpolation: {
      escapeValue: false, 
    },
  })
  .then(() => {
    loadLanguage('en');
  });

// Nanti, saat pengguna mengubah bahasa:
const changeLanguage = (lng) => {
  loadLanguage(lng).then(() => {
    i18next.changeLanguage(lng);
  });
};

            

Autentikasi dan Otorisasi

Code splitting juga dapat digunakan untuk memuat bagian yang berbeda dari aplikasi Anda berdasarkan status autentikasi atau peran pengguna. Misalnya, Anda mungkin ingin memuat dasbor admin secara lazy hanya untuk administrator yang terautentikasi.

Anda dapat mengimplementasikan ini dengan merender rute yang berbeda secara kondisional berdasarkan status autentikasi atau peran pengguna. Komponen yang dimuat secara lazy untuk rute-rute ini hanya akan dimuat ketika pengguna memenuhi kriteria yang disyaratkan.

Contoh:

            
import React, { Suspense, lazy } from 'react';
import { BrowserRouter as Router, Route, Switch, Redirect } from 'react-router-dom';

const Home = lazy(() => import('./routes/Home'));
const AdminDashboard = lazy(() => import('./routes/AdminDashboard'));

function App() {
  const isAuthenticated = true; // Ganti dengan logika autentikasi Anda
  const isAdmin = true; // Ganti dengan logika otorisasi Anda

  return (
    
      Memuat...
}> isAuthenticated && isAdmin ? ( ) : ( ) } /> ); }

Alat untuk Pemantauan dan Optimalisasi

Beberapa alat dapat membantu Anda memantau dan mengoptimalkan implementasi code splitting Anda:

Praktik Terbaik untuk Code Splitting Berbasis Rute

Kesalahan Umum yang Harus Dihindari

Kesimpulan

Code splitting berbasis rute adalah teknik yang kuat untuk mengoptimalkan kinerja aplikasi React Anda. Dengan membagi aplikasi Anda menjadi bundle yang lebih kecil dan mudah dikelola, Anda dapat secara signifikan mengurangi waktu muat awal, meningkatkan kinerja, dan menyempurnakan pengalaman pengguna. Dengan memahami dan menerapkan teknik serta praktik terbaik yang diuraikan dalam artikel ini, Anda dapat membangun aplikasi web yang lebih cepat, lebih responsif, dan lebih menarik yang menyenangkan pengguna Anda, di mana pun mereka berada. Ingatlah untuk terus memantau kinerja aplikasi Anda dan menyesuaikan strategi code splitting Anda sesuai kebutuhan untuk memastikan hasil yang optimal. Dari pemuatan awal hingga mendukung beragam bahasa dan peran pengguna, code splitting menawarkan fleksibilitas luar biasa dalam membangun aplikasi yang efisien dan dapat diskalakan untuk audiens global.