Bạn thực hiện các request AJAX trong Lifecycle event nào và tại sao?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
1.761 lượt xem

Các request AJAX nên được thực hiện trong componentDidMount lifecycle event, bởi vì:

  • Việc thực hiện các thuật toán đối chiếu sự thay đổi của React có khả năng bắt đầu và ngừng render khi thấy cần thiết cho hiệu suất. Một trong các sự quản lý việc này là sự kiện componentWillMount, là 1 lifecycle event khác có thể thực hiện 1 request AJAX, là "non-deterministic", nghĩa là React có thể gọi componentWillMount vào những thời điểm khác nhau bất cứ khi nào nó cảm thấy cần, điều này rõ ràng là không tốt cho các request AJAX.
  • Bạn không thể đảm bảo các request AJAX sẽ được giải quyết sau khi component được gắn kết, điều đó có nghĩa là bạn đang cố dùng setState trên 1 component chưa được gắn kết, không những nó không hoạt động mà React còn báo lỗi cho bạn. Thực hiện 1 request AJAX trong componentDidMount sẽ đảm bảo điều đó.
{{login.error}}