Các @
biểu tượng là trong thực tế một biểu thức JavaScript hiện đề xuất để biểu thị trang trí :
Nhà trang trí làm cho nó có thể chú thích và sửa đổi các lớp và thuộc tính tại thời điểm thiết kế.
Đây là một ví dụ về việc thiết lập Redux mà không cần và có trang trí:
Không có người trang trí
import React from 'react';
import * as actionCreators from './actionCreators';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
function mapStateToProps(state) {
return { todos: state.todos };
}
function mapDispatchToProps(dispatch) {
return { actions: bindActionCreators(actionCreators, dispatch) };
}
class MyApp extends React.Component {
// ...define your main app here
}
export default connect(mapStateToProps, mapDispatchToProps)(MyApp);
Sử dụng một trang trí
import React from 'react';
import * as actionCreators from './actionCreators';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
function mapStateToProps(state) {
return { todos: state.todos };
}
function mapDispatchToProps(dispatch) {
return { actions: bindActionCreators(actionCreators, dispatch) };
}
@connect(mapStateToProps, mapDispatchToProps)
export default class MyApp extends React.Component {
// ...define your main app here
}
Cả hai ví dụ trên đều tương đương nhau, đó chỉ là vấn đề ưu tiên. Ngoài ra, cú pháp trang trí chưa được tích hợp trong bất kỳ thời gian chạy Javascript nào và vẫn đang thử nghiệm và có thể thay đổi. Nếu bạn muốn sử dụng nó, nó có sẵn bằng Babel .