Bỏ qua lớp css
Các mô-đun CSS phản ứng thực hiện ánh xạ tự động các mô-đun CSS. Mỗi lớp CSS được gán một mã định danh phạm vi cục bộ với một tên duy nhất toàn cầu. Mô-đun CSS cho phép CSS mô-đun và có thể tái sử dụng Show
Mô-đun CSSMô-đun CSS thật tuyệt vời. Nếu bạn không quen thuộc với Mô-đun CSS, thì đó là khái niệm sử dụng gói mô-đun chẳng hạn như webpack để tải CSS trong phạm vi một tài liệu cụ thể. Trình tải mô-đun CSS sẽ tạo một tên duy nhất cho mỗi lớp CSS tại thời điểm tải tài liệu CSS (chính xác là CSS có thể tương tác). Để xem các Mô-đun CSS trong thực tế, webpack-demo Trong ngữ cảnh của React, các Mô-đun CSS trông như thế này <div className='global-css' styleName='local-module'></div>0 Kết xuất thành phần sẽ tạo ra một đánh dấu tương tự như <div className='global-css' styleName='local-module'></div>1 và một tệp CSS tương ứng khớp với các lớp CSS đó Thật tuyệt vời gói web { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }0Mô-đun CSS là một đặc điểm kỹ thuật có thể được triển khai theo nhiều cách. <div className='global-css' styleName='local-module'></div>4 tận dụng trình tải css webpack triển khai Mô-đun CSS hiện có Vấn đề là gì?bản thân webpack css-loader có một số nhược điểm
Thành phần Mô-đun CSS React tự động tải các Mô-đun CSS bằng cách sử dụng thuộc tính <div className='global-css' styleName='local-module'></div>80, e. g <div className='global-css' styleName='local-module'></div>9 Sử dụng <div className='global-css' styleName='local-module'></div>4
<div className='global-css' styleName='local-module'></div>
Việc thực hiện<div className='global-css' styleName='local-module'></div>4 mở rộng phương thức <div className='global-css' styleName='local-module'></div>89 của thành phần đích. Nó sẽ sử dụng giá trị của <div className='global-css' styleName='local-module'></div>80 để tìm các Mô-đun CSS trong đối tượng kiểu được liên kết và sẽ nối các tên lớp CSS duy nhất phù hợp với giá trị thuộc tính <div className='global-css' styleName='local-module'></div>86 { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }8 Thật tuyệt vời Cách sử dụngthiết lập bao gồm
Gói mô-đungói webPhát triểnTrong môi trường phát triển, bạn muốn Bật Sourcemaps và webpack Hot Module Replace (HMR). <div className='global-css' styleName='local-module'></div>44 đã hỗ trợ HMR. Do đó, Thay thế mô-đun nóng sẽ hoạt động ngay lập tức Cài đặt
{ test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] } Sản lượngTrong môi trường sản xuất, bạn muốn trích xuất các đoạn CSS thành một tệp biểu định kiểu duy nhất
– extract-text-webpack-plugin Cài đặt
Tham khảo webpack-demo hoặc Reac-css-modules-examples để biết ví dụ về thiết lập hoàn chỉnh trình duyệtTham khảo <div className='global-css' styleName='local-module'></div>35 Mở rộng các kiểu thành phầnSử dụng thuộc tính { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1 để ghi đè lên các kiểu thành phần mặc định Giải thích sử dụng thành phần <div className='global-css' styleName='local-module'></div>37 <div className='global-css' styleName='local-module'></div>9 Trong ví dụ này, <div className='global-css' styleName='local-module'></div>38 được sử dụng để trang trí thành phần <div className='global-css' styleName='local-module'></div>37 bằng Mô-đun CSS <div className='global-css' styleName='local-module'></div>90. Khi thành phần <div className='global-css' styleName='local-module'></div>37 được hiển thị, nó sẽ sử dụng các thuộc tính của đối tượng { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1 để xây dựng các giá trị { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }8 Sử dụng thuộc tính { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1, bạn có thể ghi đè lên đối tượng thành phần mặc định { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1, e. g <div className='global-css' styleName='local-module'></div>10 CSS có thể tương tác có thể mở rộng ICSS khác. Sử dụng tính năng này để mở rộng các kiểu mặc định, e. g <div className='global-css' styleName='local-module'></div>11 Trong ví dụ này, <div className='global-css' styleName='local-module'></div>96 mở rộng có chọn lọc <div className='global-css' styleName='local-module'></div>97 (kiểu mặc định của thành phần <div className='global-css' styleName='local-module'></div>37) Tham khảo ví dụ <div className='global-css' styleName='local-module'></div>99 để biết ví dụ về triển khai đang hoạt động { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1 Tài sảnCác thành phần được trang trí kế thừa thuộc tính { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1 mô tả ánh xạ giữa các mô-đun CSS và các lớp CSS <div className='global-css' styleName='local-module'></div>12 Trong ví dụ trên, <div className='global-css' styleName='local-module'></div>92 và <div className='global-css' styleName='local-module'></div>93 là tương đương Thuộc tính { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1 được thiết kế để cho phép trang trí thành phần của Vòng lặp và Thành phần con Vòng lặp và các thành phần conKhông thể sử dụng <div className='global-css' styleName='local-module'></div>80 để xác định kiểu của một <div className='global-css' styleName='local-module'></div>86 sẽ được tạo bởi một thành phần khác, e. g <div className='global-css' styleName='local-module'></div>13 Ví dụ trên sẽ không hoạt động. <div className='global-css' styleName='local-module'></div>38 được sử dụng để trang trí thành phần <div className='global-css' styleName='local-module'></div>98. Tuy nhiên, chính thành phần <div className='global-css' styleName='local-module'></div>99 sẽ hiển thị <div className='global-css' styleName='local-module'></div>100 Vì mục đích đó, thành phần được trang trí kế thừa thuộc tính { test: /\.css$/, loaders: [ 'style-loader?sourceMap', 'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]' ] }1 mà bạn có thể sử dụng như một đối tượng Mô-đun CSS thông thường. Do đó, ví dụ trước đó có thể được viết lại thành <div className='global-css' styleName='local-module'></div>14 Bạn có thể sử dụng thuộc tính <div className='global-css' styleName='local-module'></div>80 trong thành phần con nếu bạn trang trí thành phần con bằng cách sử dụng <div className='global-css' styleName='local-module'></div>38 trước khi chuyển nó tới thành phần hiển thị, e. g <div className='global-css' styleName='local-module'></div>15 Người trang trí<div className='global-css' styleName='local-module'></div>16 Bạn cần trang trí thành phần của mình bằng cách sử dụng <div className='global-css' styleName='local-module'></div>4, e. g <div className='global-css' styleName='local-module'></div>9 Đó là nó Đúng như tên gọi, <div className='global-css' styleName='local-module'></div>4 tương thích với cú pháp của trình trang trí ES7 <div className='global-css' styleName='local-module'></div>18 Thật tuyệt vời Tham khảo kho lưu trữ ví dụ về mô-đun phản ứng css để biết ví dụ về thiết lập webpack Tùy chọnCác tùy chọn được cung cấp dưới dạng tham số thứ ba cho hàm <div className='global-css' styleName='local-module'></div>38 <div className='global-css' styleName='local-module'></div>19 hoặc như một tham số thứ hai cho trình trang trí <div className='global-css' styleName='local-module'></div>90
|