2016-12-16 12 views
10

Tôi đang thiết kế trang web của mình theo cấu trúc mô đun sử dụng và tôi sẵn sàng sắp xếp biểu định kiểu theo cách mà tôi xác định biểu định kiểu ở mỗi cấp mô-đun (thay vì cấp thành phần) và sau đó nhập nó vào tất cả các thành phần để giữ bố cục chuẩn cho toàn bộ mô-đun.Các bảng kiểu cấp mô-đun Angular2

Vậy đây có phải là cách tiếp cận tốt không?

Nếu có, có phương pháp xuất CSS từ tệp module.ts cho tất cả các thành phần hay không. Theo cách rất tương tự, các dịch vụ được cung cấp bằng cách sử dụng providers. Điều này sẽ giúp tôi tiết kiệm nỗi đau khi nhập cùng một tệp CSS trong tất cả các thành phần riêng lẻ.

Trả lời

0

Có. Cách tiếp cận chắc chắn là tốt để có các tờ định kiểu khác nhau cho mỗi thành phần. Ngay cả CLI góc cũng theo cách tiếp cận tương tự. Bạn có thể xem và nắm tay: LINK

Vậy đây có phải là cách tiếp cận tốt không?

Có một cách tiếp cận hoàn hảo khi nói đến sắp xếp cấu trúc tệp cho ứng dụng Góc.

Nếu có, có phương pháp xuất CSS từ tệp module.ts thành tất cả các thành phần.

Theo mặc định Góc CLI không cung cấp bất kỳ bảng định kiểu nào cho mô-đun và nó cũng có ý nghĩa. Tại sao bạn cần stylesheet ở cấp mô-đun? Bạn có thể thêm kiểu có liên quan đến thành phần trong biểu định kiểu cấp thành phần và bổ sung nếu bạn muốn bạn có thể có một biểu định kiểu ở cấp dự án, nơi bạn có thể thêm tất cả kiểu phổ biến cho dự án.

+0

Điều gì sẽ xảy ra nếu tôi muốn biểu định kiểu cấp mô-đun thay vì có biểu định kiểu ở cấp sản phẩm. Vì mỗi mô-đun có bộ chức năng riêng biệt, tôi sẵn sàng có cùng một tập hợp các tính năng thiết kế của toàn bộ mô-đun đó thay vì một thành phần hoặc một dự án. –

+0

Vâng, nếu bạn chắc chắn về việc có nó ở cấp mô-đun và bạn có yêu cầu như thế. Bạn luôn có thể thêm nó. Góc không giới hạn để thêm một ở cấp độ thành phần. –

2

Vậy đây có phải là cách tiếp cận tốt không?

Chủ quan của nó. Các mô-đun góc giúp tổ chức ứng dụng thành các khối chức năng gắn kết. Tôi có muốn các phong cách khác nhau cho các chức năng khối khác nhau không? Bất thường.

Có phương pháp xuất CSS từ tệp module.ts đến tất cả các thành phần hay không.

No. Chỉ hỗ trợ ở cấp thành phần của nó. Cách giải quyết sẽ là có một tệp css duy nhất được tất cả các thành phần mô-đun tham chiếu. Sau đó, một lần nữa thực hành tốt sẽ là modularise css và sử dụng chúng ở cấp độ thành phần.

1

Vì vậy, cho phép nói rằng chúng ta có cấu trúc sau đây trong ứng dụng góc của chúng tôi

+-- src 
| +-- app 
| | +-- customer 
| | | +-- customer.scss 
| | | +-- customer.module.ts 
| | +-- product 
| | | +-- product.scss 
| | | +-- product.module.ts 
| +-- sass 
| | +-- _common.scss 
| | +-- app.scss 
| | +-- project-level-styles.scss 

Chúng ta có thể thiết lập dự án tập sass đẳng cấp của mình như sau:

@import 'common'; 

// project level classes 
@import 'project-level-styles'; 

// module level classes 
@import '../app/customer/customer.scss' 
@import '../app/customer/product.scss' 

Vì vậy, trong những customer.scssproduct.scss tôi sẽ có các lớp phổ biến trong nhiều thành phần bên trong mô-đun đó.Cần lưu ý rằng khi bạn tạo một biểu định kiểu không ở cấp thành phần và đặt nó ở một nơi khác như bên trong một thư mục mô-đun hoặc dự án, cách xử lý góc những kiểu đó là khác nhau.

Angular Component Styles

góc có thể bó phong cách thành phần với các thành phần, cho phép một thiết kế mô-đun hơn stylesheets thường xuyên. Các bộ chọn mà bạn đưa vào các kiểu của thành phần chỉ áp dụng trong khuôn mẫu của thành phần đó.

Vì vậy, xin lưu ý rằng bất kỳ biểu định kiểu nào không được liên kết với các thành phần styleUrls mảng có thể được áp dụng cho bất kỳ phần tử nào trong trang web của bạn (nếu bạn không sử dụng tính đặc hiệu). Nó không chỉ áp dụng cho mô-đun đó, vì vậy đây có thể không phải là giải pháp cho mọi tình huống, nhưng đó là điều tôi làm cho các mô-đun của mình, hiểu được điều này tôi có thể viết phong cách của mình trong bảng định kiểu mô đun đó. yếu tố cho mô-đun ...

phần vs toàn cầu

trong ứng dụng của tôi tôi customerModule có một thành phần gốc gọi customerComponent và tôi có một phần tử gốc trong html rằng có một lớp:

customer-container

Vì vậy, bên trong tôi customer.scss tôi có thể thêm vào trước tất cả các phong cách của tôi như thế này:

.customer-container .info-heading { 
    font-size: 15px; color: #333; 
} 

.customer-container .section-divider { 
    margin-top: 1em; border-top: 1px solid #dfdfdf; 
} 

Vì vậy, tôi bây giờ có thể đạt được một số mức độ đặc hiệu mà giữ phong cách của tôi từ chảy máu vào thành phần dự án khác.

Các vấn đề liên quan