@
प्रतीक वास्तव में एक जावास्क्रिप्ट अभिव्यक्ति है वर्तमान में सूचित करने के लिए प्रस्तावित सज्जाकार :
सज्जाकार डिजाइन समय पर कक्षाओं और संपत्तियों को एनोटेट और संशोधित करना संभव बनाते हैं।
यहाँ एक सज्जाकार के साथ और बिना Redux की स्थापना का एक उदाहरण है:
बिना डेकोरेटर के
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);
डेकोरेटर का उपयोग करना
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
}
उपरोक्त दोनों उदाहरण समतुल्य हैं, यह केवल वरीयता की बात है। इसके अलावा, डेकोरेटर सिंटैक्स अभी तक किसी भी जावास्क्रिप्ट रनटाइम में नहीं बनाया गया है, और अभी भी प्रायोगिक और परिवर्तन के अधीन है। यदि आप इसका उपयोग करना चाहते हैं, तो यह Babel का उपयोग करके उपलब्ध है ।