ReactJS - Tạo ứng dụng React nhanh chóng tối ưu
09/05/2023 02:13
Như chúng ta đã biết trước đó, thư viện React có thể được sử dụng trong cả ứng dụng đơn giản và phức tạp. Ứng dụng đơn giản thường bao gồm thư viện React trong phần tập lệnh của nó.
Như chúng ta đã biết trước đó, thư viện React có thể được sử dụng trong cả ứng dụng đơn giản và phức tạp. Ứng dụng đơn giản thường bao gồm thư viện React trong phần tập lệnh của nó. Trong ứng dụng phức tạp, các nhà phát triển phải chia mã thành nhiều tệp và sắp xếp mã thành một cấu trúc tiêu chuẩn. Ở đây, chuỗi công cụ React cung cấp cấu trúc được xác định trước để khởi động ứng dụng. Ngoài ra, các nhà phát triển có thể tự do sử dụng cấu trúc dự án của riêng họ để tổ chức mã.
Hãy để chúng tôi xem cách tạo ứng dụng React đơn giản cũng như phức tạp –
Sử dụng gói Rollup
Rollup là một trong những gói JavaScript nhỏ và nhanh. Chúng ta hãy tìm hiểu cách sử dụng gói tổng số trong chương này.
Mở một thiết bị đầu cuối và đi đến không gian làm việc của bạn.
cd /go/to/your/workspace
Tiếp theo, tạo một thư mục, tổng số quản lý chi phí và di chuyển đến thư mục mới được tạo. Ngoài ra, hãy mở thư mục trong trình chỉnh sửa hoặc IDE yêu thích của bạn.
mkdir expense-manager-rollup cd expense-manager-rollup
Tiếp theo, tạo và khởi tạo dự án.
npm init -y
Tiếp theo, cài đặt các thư viện React (react và Reac-dom) .
npm install react@^17.0.0 react-dom@^17.0.0 --save
Tiếp theo, cài đặt babel và các thư viện cài sẵn của nó dưới dạng phụ thuộc phát triển.
npm install @babel/preset-env @babel/preset-react @babel/core @babel/plugin-proposal-class-properties -D
Tiếp theo, cài đặt tổng số và các thư viện plugin của nó dưới dạng phần phụ thuộc phát triển.
npm i -D rollup postcss@8.1 @rollup/plugin-babel @rollup/plugin-commonjs @rollup/plugin-node-resolve @rollup/plugin-replace rollup-plugin-livereload rollup-plugin-postcss rollup-plugin-serve postcss@8.1 postcss-modules@4 rollup-plugin-postcss
Tiếp theo, cài đặt corejs và thời gian chạy bộ tái tạo để lập trình không đồng bộ.
npm i regenerator-runtime core-js
Tiếp theo, tạo một tệp cấu hình babel, .babelrc trong thư mục gốc để định cấu hình trình biên dịch babel.
{ "presets": [ [ "@babel/preset-env", { "useBuiltIns": "usage", "corejs": 3, "targets": "> 0.25%, not dead" } ], "@babel/preset-react" ], "plugins": [ "@babel/plugin-proposal-class-properties" ] }
Tiếp theo, tạo tệp rollup.config.js trong thư mục gốc để định cấu hình gói tổng số.
import babel from '@rollup/plugin-babel'; import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import replace from '@rollup/plugin-replace'; import serve from 'rollup-plugin-serve'; import livereload from 'rollup-plugin-livereload'; import postcss from 'rollup-plugin-postcss' export default { input: 'src/index.js', output: { file: 'public/index.js', format: 'iife', }, plugins: [ commonjs({ include: [ 'node_modules/**', ], exclude: [ 'node_modules/process-es6/**', ], }), resolve(), babel({ exclude: 'node_modules/**' }), replace({ 'process.env.NODE_ENV': JSON.stringify('production'), }), postcss({ autoModules: true }), livereload('public'), serve({ contentBase: 'public', port: 3000, open: true, }), // index.html should be in root of project ] }
Tiếp theo, cập nhật package.json và bao gồm điểm vào của chúng tôi (public/index.js và public/styles.css) và lệnh để xây dựng và chạy ứng dụng.
... "main": "public/index.js", "style": "public/styles.css", "files": [ "public" ], "scripts": { "start": "rollup -c -w", "build": "rollup" }, ...
Tiếp theo, tạo một thư mục src trong thư mục gốc của ứng dụng, thư mục này sẽ chứa tất cả mã nguồn của ứng dụng.
Tiếp theo, tạo một thư mục, các thành phần bên dưới src để bao gồm các thành phần React của chúng ta. Ý tưởng là tạo hai tệp, <component>.js để viết logic thành phần và <component.css> để bao gồm các kiểu cụ thể của thành phần.
Cấu trúc cuối cùng của ứng dụng sẽ như sau -
|-- package-lock.json |-- package.json |-- rollup.config.js |-- .babelrc `-- public |-- index.html `-- src |-- index.js `-- components | |-- mycom.js | |-- mycom.css
Hãy để chúng tôi tạo một thành phần mới, HelloWorld để xác nhận rằng thiết lập của chúng tôi đang hoạt động tốt. Tạo một tệp, HelloWorld.js trong thư mục thành phần và viết một thành phần đơn giản để phát ra thông báo Hello World .
import React from "react"; class HelloWorld extends React.Component { render() { return ( <div> <h1>Hello World!</h1> </div> ); } } export default HelloWorld;
Tiếp theo, tạo tệp chính của chúng tôi, index.js trong thư mục src và gọi thành phần mới được tạo của chúng tôi.
import React from 'react'; import ReactDOM from 'react-dom'; import HelloWorld from './components/HelloWorld'; ReactDOM.render( <React.StrictMode> <HelloWorld /> </React.StrictMode>, document.getElementById('root') );
Tiếp theo, tạo một thư mục chung trong thư mục gốc.
Tiếp theo, tạo một tệp html, index.html (trong thư mục chung*), đây sẽ là điểm vào của ứng dụng.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Expense Manager :: Rollup version</title> </head> <body> <div id="root"></div> <script type="text/JavaScript" src="./index.js"></script> </body> </html>
Tiếp theo, xây dựng và chạy ứng dụng.
npm start
Lệnh xây dựng npm sẽ thực thi tổng số và gói ứng dụng của chúng ta vào một tệp duy nhất, tệp dist/index .js và bắt đầu phục vụ ứng dụng. Lệnh dev sẽ biên dịch lại mã bất cứ khi nào mã nguồn bị thay đổi và cũng tải lại các thay đổi trong trình duyệt.
> expense-manager-rollup@1.0.0 build /path/to/your/workspace/expense-manager-rollup > rollup -c rollup v2.36.1 bundles src/index.js → dist\index.js... LiveReload enabled http://localhost:10001 -> /path/to/your/workspace/expense-manager-rollup/dist created dist\index.js in 4.7s waiting for changes...
Tiếp theo, mở trình duyệt và nhập http://localhost:3000 vào thanh địa chỉ và nhấn enter. ứng dụng phục vụ sẽ phục vụ trang web của chúng tôi như hình dưới đây.
Sử dụng gói bưu kiện
Bưu kiện là gói nhanh với cấu hình bằng không. Nó chỉ mong đợi điểm đầu vào của ứng dụng và nó sẽ tự giải quyết sự phụ thuộc và đóng gói ứng dụng. Chúng ta hãy tìm hiểu cách sử dụng gói bưu kiện trong chương này.
Đầu tiên, cài đặt gói bưu kiện.
npm install -g parcel-bundler
Mở một thiết bị đầu cuối và đi đến không gian làm việc của bạn.
cd /go/to/your/workspace
Tiếp theo, tạo một thư mục, người quản lý chi phí-bưu kiện và di chuyển đến thư mục mới được tạo. Ngoài ra, hãy mở thư mục trong trình chỉnh sửa hoặc IDE yêu thích của bạn.
mkdir expense-manager-parcel cd expense-manager-parcel
Tiếp theo, tạo và khởi tạo dự án.
npm init -y
Tiếp theo, cài đặt các thư viện React (react và Reac-dom) .
npm install react@^17.0.0 react-dom@^17.0.0 --save
Tiếp theo, cài đặt babel và các thư viện cài sẵn của nó dưới dạng phụ thuộc phát triển.
npm install @babel/preset-env @babel/preset-react @babel/core @babel/plugin-proposal-class-properties -D
Tiếp theo, tạo một tệp cấu hình babel, .babelrc trong thư mục gốc để định cấu hình trình biên dịch babel.
{ "presets": [ "@babel/preset-env", "@babel/preset-react" ], "plugins": [ "@babel/plugin-proposal-class-properties" ] }
Tiếp theo, cập nhật package.json và bao gồm điểm vào của chúng tôi (src/index.js) và các lệnh để xây dựng và chạy ứng dụng.
... "main": "src/index.js", "scripts": { "start": "parcel public/index.html", "build": "parcel build public/index.html --out-dir dist" }, ...
Tiếp theo, tạo một thư mục src trong thư mục gốc của ứng dụng, thư mục này sẽ chứa tất cả mã nguồn của ứng dụng.
Tiếp theo, tạo một thư mục, các thành phần bên dưới src để bao gồm các thành phần React của chúng ta. Ý tưởng là tạo hai tệp, <component>.js để viết logic thành phần và <component.css> để bao gồm các kiểu cụ thể của thành phần.
Cấu trúc cuối cùng của ứng dụng sẽ như sau -
|-- package-lock.json |-- package.json |-- .babelrc `-- public |-- index.html `-- src |-- index.js `-- components | |-- mycom.js | |-- mycom.css
Hãy để chúng tôi tạo một thành phần mới, HelloWorld để xác nhận rằng thiết lập của chúng tôi đang hoạt động tốt. Tạo một tệp, HelloWorld.js trong thư mục thành phần và viết một thành phần đơn giản để phát ra thông báo Hello World .
import React from "react"; class HelloWorld extends React.Component { render() { return ( <div> <h1>Hello World!</h1> </div> ); } } export default HelloWorld;
Tiếp theo, tạo tệp chính của chúng tôi, index.js trong thư mục src và gọi thành phần mới được tạo của chúng tôi.
import React from 'react'; import ReactDOM from 'react-dom'; import HelloWorld from './components/HelloWorld'; ReactDOM.render( <React.StrictMode> <HelloWorld /> </React.StrictMode>, document.getElementById('root') );
Tiếp theo, tạo một thư mục chung trong thư mục gốc.
Tiếp theo, tạo một tệp html, index.html (trong thư mục chung ), đây sẽ là điểm vào của ứng dụng.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Expense Manager :: Parcel version</title> </head> <body> <div id="root"></div> <script type="text/JavaScript" src="../src/index.js"></script> </body> </html>
Tiếp theo, xây dựng và chạy ứng dụng.
npm start
Lệnh xây dựng npm sẽ thực thi lệnh bưu kiện. Nó sẽ đóng gói và phục vụ ứng dụng một cách nhanh chóng. Nó biên dịch lại bất cứ khi nào mã nguồn bị thay đổi và cũng tải lại các thay đổi trong trình duyệt.
> expense-manager-parcel@1.0.0 dev /go/to/your/workspace/expense-manager-parcel > parcel index.html Server running at http://localhost:1234 √ Built in 10.41s.
Tiếp theo, mở trình duyệt và nhập http://localhost:1234 vào thanh địa chỉ và nhấn enter.
Để tạo gói sản xuất của ứng dụng nhằm triển khai nó trong máy chủ sản xuất, hãy sử dụng lệnh xây dựng . Nó sẽ tạo một tệp index.js với tất cả mã nguồn được đóng gói trong thư mục dist.
npm run build > expense-manager-parcel@1.0.0 build /go/to/your/workspace/expense-manager-parcel > parcel build index.html --out-dir dist √ Built in 6.42s. dist\src.80621d09.js.map 270.23 KB 79ms dist\src.80621d09.js 131.49 KB 4.67s dist\index.html 221 B 1.63s