Sự khác biệt giữa thành phần và vùng chứa trong phản ứng redux là gì?Sự khác biệt giữa thành phần và vùng chứa trong phản ứng redux
Trả lời
Component
là một phần của API phản ứng. Thành phần là một lớp hoặc hàm mô tả một phần của Giao diện người dùng phản ứng.
Vùng chứa là cụm từ không chính thức cho thành phần React được connect
được chuyển đến cửa hàng Redux. Các vùng chứa nhận các cập nhật trạng thái Redux và các hành động dispatch
và chúng thường không hiển thị các phần tử DOM; họ ủy quyền hiển thị cho presentational thành phần con.
Để biết thêm chi tiết, hãy đọc presentational vs container components bởi Dan Abramov.
Đó là lời giải thích khá tốt. Rất ngắn gọn và tôi có thể lấy chi tiết –
Cả hai đều là thành phần; các thùng chứa có chức năng, vì vậy chúng không hiển thị bất kỳ html nào, và sau đó bạn cũng có các thành phần trình bày, nơi bạn viết html thực tế. Mục đích của container là lập bản đồ trạng thái và gửi đến các đạo cụ cho thành phần presentational.
Đọc thêm: Link
Component chịu trách nhiệm cho việc lấy dữ liệu và hiển thị nó được gọi là thành phần thông minh hoặc container. Dữ liệu có thể đến từ redux, đạo cụ hoặc bất kỳ cuộc gọi mạng nào.
Thành phần câm/thuyết trình là những thành phần chịu trách nhiệm trình bày dữ liệu nhận được.
Tốt bài viết với ví dụ ở đây
https://www.cronj.com/blog/difference-container-component-react-js/
Các thành phần xây dựng một piace về quan điểm, vì vậy nó nên làm cho phần tử DOM, đưa nội dung trên màn hình.
Các thùng chứa tham gia vào việc xây dựng dữ liệu, vì vậy nó nên "nói chuyện" với redux, bởi vì nó sẽ cần phải sửa đổi trạng thái. Vì vậy, bạn nên bao gồm kết nối (Redux phản ứng-) những gì nó làm cho các kết nối, và các chức năng mapStateToProps và mapDispatchToProps:
.
.
.
import { connect } from "react-redux";
class myContainer extends Component {
}
function mapStateToProps(state) {
// You return what it will show up as props of myContainer
return {
property: this.state.property
};
}
function mapDispatchToProps(dispatch) {
// Whenever property is called, it should be passed to all reducers
return bindActionCreators({ property: property }, dispatch);
}
export default connect(mapStateToProps, mapDispatchToProps)(myContainer);
Phản ứng, Redux là thư viện độc lập.
Phản hồi cung cấp cho bạn khung làm việc để tạo tài liệu HTML. Các thành phần theo một cách đại diện cho một phần cụ thể của tài liệu. Các phương thức liên kết với một thành phần sau đó có thể thao tác phần rất cụ thể của tài liệu.
Redux là một khung công tác quy định cho một triết lý cụ thể để lưu trữ và quản lý dữ liệu trong môi trường JS. Nó là một đối tượng JS lớn với các phương thức nhất định được xác định, trường hợp sử dụng tốt nhất có dạng quản lý trạng thái của một ứng dụng web.
Vì React quy định rằng tất cả dữ liệu sẽ chuyển từ gốc sang lá, nó trở nên tẻ nhạt để chính tất cả các đạo cụ, xác định đạo cụ trong các thành phần và sau đó truyền đạo cụ cho các đạo cụ nhất định cho trẻ em. Nó cũng làm cho toàn bộ trạng thái ứng dụng dễ bị tổn thương.
React Redux cung cấp giải pháp sạch, nơi nó kết nối trực tiếp bạn với cửa hàng Redux, chỉ cần gói thành phần được kết nối xung quanh một Component React khác (Container
) của bạn. Kể từ khi triển khai, triển khai của bạn, bạn đã xác định phần nào của toàn bộ trạng thái ứng dụng mà bạn yêu cầu. Vì vậy, connect
lấy dữ liệu đó ra khỏi cửa hàng và chuyển nó làm đạo cụ cho thành phần mà nó tự bao quanh.
Hãy xem xét ví dụ đơn giản này:
class Person extends Component {
constructor(props){
this.name = this.props.name;
this.type = this.props.type;
}
render() {
return <p> My name is {this.name}. I am a doctor { this.type } </p>
}
}
const connect = InnerComponent => {
class A extends Component{
render() {
return <InnerComponent {...this.props} type="Doctor"/>
}
}
A.displayName = `Connect(${InnerComponent.displayName})`
return A
}
connect
chức năng đi một chỗ dựa type
.
Bằng cách này, một kết nối hoạt động như vùng chứa cho thành phần Person.
- 1. Sự khác biệt giữa thành phần phản ứng và nguyên tố phản ứng
- 2. Sự khác biệt giữa phản ứng-router 4.0, phản ứng-router-dom và phản ứng-router-redux là gì?
- 3. Sự khác biệt giữa vùng chứa và trình bao bọc
- 4. Sự khác biệt giữa Bộ sưu tập và Vùng chứa
- 5. sự khác biệt giữa getDefaultProps và getInitialState phản ứng js
- 6. Chuyển đạo cụ tới thành phần thùng phản ứng-redux
- 7. Sự khác biệt giữa thành phần React và cá thể thành phần React là gì?
- 8. Sự khác biệt giữa Thành phần OSGi và Dịch vụ
- 9. Sự khác biệt giữa dịch vụ và vùng chứa trong docker soạn
- 10. sự khác biệt giữa lệnh và lệnh vùng chứa trong cuộc thảo luận về đàn hồi
- 11. Lỗi khi sử dụng thành phần được thực hiện với phản ứng, redux và phản ứng-redux và xây dựng với webpack trong ứng dụng phản ứng
- 12. Các thành phần thùng chứa phản ứng-redux tái sử dụng
- 13. Sự khác nhau giữa ngữ cảnh ứng dụng Spring và vùng chứa Spring là gì?
- 14. Sự khác biệt giữa vùng chứa được nhúng với vùng chứa được quản lý trong Java EE 6 là gì?
- 15. Sự khác biệt giữa onEndEditing và onBlur?
- 16. Sự khác nhau giữa Bố cục và Vùng chứa trong Android là gì?
- 17. Sự khác biệt giữa "nhóm" và "thành phần" trong QuickFix/J
- 18. Sự khác biệt giữa malloc và dlmalloc
- 19. Sự khác biệt giữa lmctfy và lxc
- 20. Sự khác biệt giữa "phần" và "phân khúc" trong NASM
- 21. Sự khác biệt giữa $ * và $ @
- 22. Trong phản ứng điều hướng sự khác biệt giữa routeName và khóa là gì?
- 23. Sự khác biệt giữa hashHistory và browserHistory trong bộ định tuyến phản ứng là gì?
- 24. Sự khác biệt giữa Request.Cookies và Response.Cookies
- 25. Sự khác biệt giữa HttpCookie và Cookie?
- 26. sự khác biệt giữa inventory_hostname và ansible_hostname
- 27. sự khác biệt giữa 'và "trong JavaScript?
- 28. Cách sử dụng phản ứng-redux kết nối với mapStateToProps, MapDispatchToProps và redux-router
- 29. Sự khác biệt giữa. và #
- 30. Sự khác biệt giữa $ (...) và `...`
vùng chứa nhận thức được cửa hàng và truyền đạo cụ trạng thái cho các thành phần. Mục tiêu duy nhất của các thành phần là tạo ra html, các thành phần lý tưởng là không trạng thái thì nó sẽ dễ dàng hơn khi viết các bài kiểm thử đơn vị –