@
Sembol aslında bir JavaScript ifadesidir anda delalet önerdi dekoratörler :
Dekoratörler, tasarım zamanında sınıflara ve özelliklere açıklama eklemeyi ve değiştirmeyi mümkün kılar.
İşte Redux'u dekoratör olmadan ve dekoratörle kurmanın bir örneği:
Dekoratör olmadan
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);
Dekoratör kullanma
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
}
Yukarıdaki her iki örnek de eşdeğerdir, sadece bir tercih meselesidir. Ayrıca, dekoratör sözdizimi henüz herhangi bir Javascript çalışma zamanına dahil değildir ve hala deneysel ve değişime tabidir. Kullanmak istiyorsanız, Babel'i kullanabilirsiniz .