Hướng dẫn css inline reactjs - css phản ứng nội tuyến
Làm thế nào tôi chèn class CSS cho các component?Truyền tên của class cho prop là 0: Show
Thông thường các class CSS phụ thuộc vào các component props hoặc state:
Tôi có dùng được inline styles?Có, xem tài liệu styling tại đây. Viết inline styles xấu?Các class CSS thường sẽ có hiệu suất tốt hơn là inline styles. CSS-in-JS là gì?“CSS-in-JS” đề cập đến một pattern trong đó CSS được tạo bằng JavaScript thay vì được định nghĩa trong các tệp bên ngoài. Lưu ý đây không phải là thư viện của React, nhưng được cung câp bởi thư viện thứ ba. React không có ý kiến về cách xác định style; nếu nghi ngờ, bạn có thể định nghĩa style trong một tệp 1 riêng và tham chiếu tới chúng sử dụng 0.Tôi có thể dùng animations trong React?React có thể sử dụng animations rất tốt. Xem ví dụ React Transition Group và React Motion hoặc React Spring. Có tất cả 4 cách khác nhau để viết style cho các React Components, tùy thuộc vào sở thích cá nhân và độ phức tạp cụ thể của ứng dụng. Ví dụ: Nếu bạn chỉ muốn thêm vài thuộc tính style cho components/elements thì inline style là lựa chọn tốt nhất. Khi bạn muốn tái sử dụng các components/elements đã được style trong cùng một file thì style-component là một lựa chọn hoàn hảo. Khi ứng dụng của bạn phức tạp hơn thì tôi đánh giá cao việc sử dụng CSS Modules hoặc sử dụng CSS stylesheets thông thường. 1. CSS StylesheetĐơn giản là các bạn sẽ import file css vào component bằng cách
nên bạn có thể tách file css ra cho mỗi component. Tuy nhiên dù bạn chỉ import ở 1 component nhưng css được import sẽ được áp dụng lên toàn bộ ứng dụng. 2. Inline stylingTrong React, inline styles không được viết dưới dạng string (chuỗi) như html thông thường. Thay vào đó nó sẽ được viết dưới dạng Object với key được viết theo kiểu camelCased còn style của value sẽ thường là kiểu string. Ngoài ra, chúng ta cũng có thể tạo một biến lưu trữ giá trị css rồi truyền nó vào các element như sau:
hoặc truyền thẳng style vào element:
3. CSS ModulesMột CSS Module là một file CSS mà tất cả các tên class và tên hiệu ứng sẽ được bao bọc lại và chỉ có tác dụng trong những file được import. Để có thể dễ hiểu hơn mình xin đưa ra một ví dụ cụ thể hơn về CSS module:
Hơi khác với import css thông thường ta import css bằng cách: 3 sau đó ta sử dụng như một object.Với những bạn nào sử dụng thư viện create-react-app để tạo ứng dụng thì cách viết ở trong file CSS hơi khác biệt một chút, đó là ta phải viết theo cú pháp 4. Ví dụ:
Còn với nhưng bạn sử dụng boilerplate khác thì có thể viết css như thường và thêm đoạn loader dưới đây vào file config webpack:
4. Styled-components 💅Styled-components là một thư viện dành cho React và React Native cho phép bạn viết style ở cấp độ component trong ứng dụng của bạn. Đầu tiên ta phải cài đặt thư viện styled-components:
Giờ chúng ta có thể tạo các biến mới bằng cách sử dụng các thẻ html quen thuộc và thêm style cho chúng theo cú pháp: 5Sau đó ta có thể sử dụng biến mới tạo này như các React Component: 6Sau đây là một ví dụ cụ thể hơn:
5. Tổng kết:Tất cả những phương pháp trên đều có những ưu điểm và nhược điểm, vì vậy hãy suy nghĩ, tính toán trước về độ phức tạp của ứng dụng cũng như sở thích của bạn để chọn ra phương pháp hợp lý và hiệu quả nhất. Nguồn: https://codeburst.io/4-four-ways-to-style-react-components-ac6f323da822 |