Dịch vụ không giới hạn ở Angular, ngay cả trong Angular2 + ,
Dịch vụ chỉ là tập hợp các chức năng của người trợ giúp ...
Và có nhiều cách để tạo chúng và tái sử dụng chúng trên ứng dụng ...
1) Chúng có thể là tất cả các chức năng riêng biệt được xuất từ tệp js, tương tự như dưới đây:
export const firstFunction = () => {
return "firstFunction";
}
export const secondFunction = () => {
return "secondFunction";
}
//etc
2) Chúng ta cũng có thể sử dụng phương thức nhà máy như, với bộ sưu tập các hàm ... với ES6, nó có thể là một lớp chứ không phải là hàm tạo:
class myService {
constructor() {
this._data = null;
}
setMyService(data) {
this._data = data;
}
getMyService() {
return this._data;
}
}
Trong trường hợp này, bạn cần tạo một cá thể với khóa mới ...
const myServiceInstance = new myService();
Ngoài ra, trong trường hợp này, mỗi trường hợp có cuộc sống riêng của nó, vì vậy hãy cẩn thận nếu bạn muốn chia sẻ nó, trong trường hợp đó bạn chỉ nên xuất trường hợp bạn muốn ...
3) Nếu chức năng và dụng cụ của bạn sẽ không được chia sẻ, bạn thậm chí có thể đặt chúng vào thành phần React, trong trường hợp này, giống như chức năng trong thành phần phản ứng của bạn ...
class Greeting extends React.Component {
getName() {
return "Alireza Dezfoolian";
}
render() {
return <h1>Hello, {this.getName()}</h1>;
}
}
4) Một cách khác bạn có thể xử lý mọi thứ, có thể là sử dụng Redux , đó là một cửa hàng tạm thời cho bạn, vì vậy nếu bạn có nó trong ứng dụng React của mình , nó có thể giúp bạn với nhiều chức năng setter getter bạn sử dụng ... Nó giống như một cửa hàng lớn theo dõi các trạng thái của bạn và có thể chia sẻ nó trên các thành phần của bạn, vì vậy có thể thoát khỏi nhiều nỗi đau cho những thứ setter getter mà chúng ta sử dụng trong các dịch vụ ...
Làm mã DRY luôn tốt và không lặp lại những gì cần sử dụng để làm cho mã có thể sử dụng lại và có thể đọc được, nhưng đừng cố làm theo các cách Angular trong ứng dụng React , như đã đề cập trong mục 4, sử dụng Redux có thể làm giảm nhu cầu của bạn các dịch vụ và bạn giới hạn sử dụng chúng cho một số chức năng trợ giúp có thể sử dụng lại như mục 1 ...