Untuk mengoptimumkan aplikasi React, anda boleh menggunakan beberapa strategi utama yang memfokuskan pada prestasi, pengurangan saiz berkas, pemaparan yang cekap dan keseluruhan pengalaman pengguna. Berikut ialah pecahan teknik pengoptimuman khusus untuk React:
Pembahagian kod membolehkan anda memecahkan apl anda kepada bahagian yang lebih kecil yang boleh dimuatkan mengikut keperluan, dan bukannya memuatkan keseluruhan aplikasi sekali gus. Ini menambah baik masa muat awal.
const LazyComponent = React.lazy(() => import('./Component')); function App() { return ( <react.suspense fallback="{<div">Loading...}> <lazycomponent></lazycomponent> </react.suspense> ); }
Mengelakkan pemaparan semula yang tidak perlu adalah penting untuk meningkatkan prestasi dalam aplikasi React.
const MyComponent = React.memo(({ value }) => { return <div>{value}</div>; });
const computedValue = useMemo(() => expensiveComputation(value), [value]);
const handleClick = useCallback(() => { console.log('Clicked'); }, []);
Mengendalikan keadaan dengan cara yang mengelakkan pemaparan yang tidak perlu boleh meningkatkan prestasi dengan sangat baik.
const [state, dispatch] = useReducer(reducer, initialState);
Memaparkan senarai atau jadual yang panjang boleh melambatkan prestasi. Gunakan teknik virtualisasi senarai untuk hanya memaparkan perkara yang kelihatan pada skrin.
import { FixedSizeList as List } from 'react-window'; const MyList = ({ items }) => ( <list height="{500}" itemcount="{items.length}" itemsize="{35}" width="{300}"> {({ index, style }) => <div style="{style}">{items[index]}</div>} </list> );
Pastikan aplikasi anda hanya mengimport bahagian perpustakaan yang sedang digunakan untuk mengurangkan saiz berkas.
// Instead of this: import _ from 'lodash'; // Do this: import debounce from 'lodash/debounce';
Imej selalunya merupakan aset terbesar pada halaman. Gunakan pemuatan malas untuk melengahkan pemuatan imej sehingga ia berada dalam port pandangan.
import LazyLoad from 'react-lazyload'; const ImageComponent = () => ( <lazyload height="{200}" once> <img src="image-url.jpg" alt="Aplikasi Optimalkan React"> </lazyload> );
const LazyImage = ({ src, alt }) => { const [inView, setInView] = useState(false); const imgRef = useRef(null); useEffect(() => { const observer = new IntersectionObserver(([entry]) => { if (entry.isIntersecting) { setInView(true); observer.disconnect(); } }); observer.observe(imgRef.current); }, []); return <img ref="{imgRef}" src="%7BinView" : alt="{alt}">; };
Gunakan Terser atau minifikasi terbina dalam Webpack untuk mengurangkan saiz berkas JavaScript anda semasa proses binaan.
Buat Apl React secara automatik mengecilkan kod untuk binaan pengeluaran:
npm run build
Analisis saiz berkas JavaScript anda untuk mengenal pasti kawasan yang boleh anda perbaiki.
npm install --save-dev webpack-bundle-analyzer
Dalam konfigurasi Webpack anda:
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); module.exports = { plugins: [ new BundleAnalyzerPlugin() ] };
npm install @fullhuman/postcss-purgecss
Contoh konfigurasi PostCSS:
const purgecss = require('@fullhuman/postcss-purgecss')({ content: ['./src/**/*.js', './public/index.html'], defaultExtractor: content => content.match(/[\w-/:]+(? <h3> 10. <strong>Optimumkan Permintaan Rangkaian</strong> </h3> <p>Mengurangkan bilangan permintaan rangkaian dan mengoptimumkan panggilan API boleh membawa kepada peningkatan prestasi yang ketara.</p>
const fetchResults = debounce((query) => { // API call logic }, 300);
import useSWR from 'swr'; const fetcher = url => fetch(url).then(res => res.json()); const MyComponent = () => { const { data, error } = useSWR('/api/data', fetcher); if (error) return <div>Error loading data</div>; if (!data) return <div>Loading...</div>; return <div>{data.message}</div>; };
Avoid adding unnecessary elements to the DOM by using React Fragments ( and >) when wrapping multiple elements.
const MyComponent = () => ( <h1>Title</h1> <p>Content</p> > );
Use the React Developer Tools profiler to identify performance bottlenecks in your app.
Optimizing a React application requires careful attention to performance, bundle size, and rendering efficiency. By employing techniques like code splitting, memoization, lazy loading, tree shaking, and minimizing network requests, you can significantly improve the performance of your app. Make sure to regularly analyze and test your app’s performance to catch any potential inefficiencies.
Atas ialah kandungan terperinci Aplikasi Optimalkan React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!