Tách mã là gì và cách giới thiệu nó trong ứng dụng React
Các ứng dụng JavaScript hiện đại có thể khá lớn về kích thước gói. Bạn không muốn người dùng của mình phải tải xuống gói JavaScript 1MB (mã của bạn và các thư viện bạn sử dụng) chỉ để tải trang đầu tiên, phải không? Nhưng đây là điều xảy ra theo mặc định khi bạn gửi một Ứng dụng web hiện đại được xây dựng với gói Webpack.
Gói đó sẽ chứa mã có thể không bao giờ chạy vì người dùng chỉ dừng lại trên trang đăng nhập và không bao giờ thấy phần còn lại của ứng dụng của bạn.
Tách mã là thực hành chỉ tải JavaScript bạn cần vào lúc bạn cần.
Điều này cải thiện:
- hiệu suất của ứng dụng của bạn
- tác động đến bộ nhớ và do đó, việc sử dụng pin trên thiết bị di động
- kích thước KiloBytes (hoặc MegaBytes) đã tải xuống
React 16.6.0, được phát hành vào tháng 10 năm 2018, đã giới thiệu một cách thực hiện phân tách mã sẽ thay thế cho mọi công cụ hoặc thư viện đã sử dụng trước đây:React.lazyvàHồi hộp.
React.lazy
vàSuspense
tạo thành cách hoàn hảo để tải một cách lười biếng một phần phụ thuộc và chỉ tải nó khi cần thiết.
Hãy bắt đầu vớiReact.lazy
. Bạn sử dụng nó để nhập bất kỳ thành phần nào:
import React from 'react'
const TodoList = React.lazy(() => import(’./TodoList’))
export default () => {
return (
<div>
<TodoList />
</div>
)
}
thành phần TodoList sẽ được thêm động vào đầu ra ngay khi có sẵn. Webpack sẽ tạo một gói riêng cho nó và sẽ đảm nhận việc tải nó khi cần thiết.
Suspense
là một thành phần mà bạn có thể sử dụng để bọc bất kỳ thành phần nào được tải chậm:
import React from 'react'
const TodoList = React.lazy(() => import(’./TodoList’))
export default () => {
return (
<div>
<React.Suspense>
<TodoList />
</React.Suspense>
</div>
)
}
Nó đảm nhiệm việc xử lý đầu ra trong khi thành phần được tải lười biếng được tìm nạp và kết xuất.
Sử dụng nófallback
hỗ trợ xuất một số JSX hoặc một đầu ra thành phần:
...
<React.Suspense fallback={<p>Please wait</p>}>
<TodoList />
</React.Suspense>
...
Tất cả điều này hoạt động tốt với React Router:
import React from 'react'
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
const TodoList = React.lazy(() => import(’./routes/TodoList’))
const NewTodo = React.lazy(() => import(’./routes/NewTodo’))
const App = () => (
<Router>
<React.Suspense fallback={<p>Please wait</p>}>
<Switch>
<Route exact path="/" component={TodoList} />
<Route path="/new" component={NewTodo} />
</Switch>
</React.Suspense>
</Router>
)
Tải xuống miễn phí của tôiSổ tay React
Các hướng dẫn về phản ứng khác:
- Ví dụ về ứng dụng React đơn giản: tìm nạp thông tin người dùng GitHub qua API
- Tạo một bộ đếm đơn giản với React
- Thiết lập mã VS để phát triển React
- Cách chuyển các đạo cụ cho một thành phần con thông qua React Router
- Tạo ứng dụng với Electron và React
- Hướng dẫn: tạo Bảng tính bằng React
- Lộ trình học React
- Tìm hiểu cách sử dụng Redux
- Bắt đầu với JSX
- Các thành phần được tạo kiểu
- Giới thiệu về Redux Saga
- Giới thiệu về React Router
- Giới thiệu về React
- Các thành phần React
- DOM ảo
- Sự kiện React
- Trạng thái phản ứng
- React Props
- Phân đoạn phản ứng
- API ngữ cảnh phản ứng
- React PropTypes
- Các khái niệm phản ứng: khai báo
- React: Cách hiển thị một thành phần khác khi nhấp chuột
- Cách lặp lại bên trong React JSX
- Props so với State trong React
- Bạn nên sử dụng jQuery hay React?
- Bạn cần biết bao nhiêu JavaScript để sử dụng React?
- Giới thiệu về Gatsby
- Cách tham chiếu phần tử DOM trong React
- Luồng dữ liệu một chiều trong React
- React Các thành phần thứ tự cao hơn
- Sự kiện vòng đời phản ứng
- Khái niệm React: Tính bất biến
- Khái niệm React: Độ tinh khiết
- Giới thiệu về React Hooks
- Giới thiệu về ứng dụng tạo-phản ứng
- Khái niệm React: Thành phần
- React: Các thành phần trình bày so với vùng chứa
- Tách mã trong React
- Kết xuất phía máy chủ với React
- Cách cài đặt React
- CSS trong React
- Sử dụng SASS trong React
- Xử lý các biểu mẫu trong React
- Chế độ phản ứng nghiêm ngặt
- Cổng phản ứng
- React Render Props
- Kiểm tra các thành phần React
- Cách chuyển một tham số cho các trình xử lý sự kiện trong React
- Cách xử lý lỗi trong React
- Cách trả về nhiều phần tử trong JSX
- Kết xuất có điều kiện trong React
- React, cách chuyển đạo cụ sang các thành phần con
- Cách lấy giá trị của một phần tử đầu vào trong React
- Cách sử dụng hook useState React
- Cách sử dụng useCallback React hook
- Cách sử dụng useEffect React hook
- Cách sử dụng useMemo React hook
- Cách sử dụng hook useRef React
- Cách sử dụng hook useContext React
- Cách sử dụng useReducer React hook
- Cách kết nối ứng dụng React của bạn với một chương trình phụ trợ trên cùng một nguồn gốc
- Hướng dẫn tiếp cận bộ định tuyến
- Cách sử dụng Công cụ dành cho nhà phát triển React
- Cách học React
- Cách gỡ lỗi ứng dụng React
- Cách hiển thị HTML trong React
- Cách sửa lỗi không khớp với `` risklySetInnerHTML '' trong React
- Cách tôi khắc phục sự cố với trạng thái biểu mẫu đăng nhập React và tính năng tự động điền của Trình duyệt
- Cách định cấu hình HTTPS trong ứng dụng React trên localhost
- Cách khắc phục lỗi "không thể cập nhật một thành phần trong khi hiển thị một thành phần khác" trong React
- Tôi có thể sử dụng React hooks bên trong một điều kiện không?
- Sử dụng useState với một đối tượng: cách cập nhật
- Cách di chuyển xung quanh các khối mã với React và Tailwind
- Phản ứng, tập trung một mục trong React khi được thêm vào DOM
- Phản ứng, chỉnh sửa văn bản trên doubleclick