पहले, AJAX का उपयोग कर डेटा लाने के लिए, आप कुछ ही विकल्प हैं:
- Fetch API है, जो बाहर काम करेंगे some browsers में बॉक्स का (आप अन्य ब्राउज़रों में भी काम करने के लिए पॉलीफिल का उपयोग कर सकते हैं)। उदाहरण कार्यान्वयन के लिए this answer देखें।
- डेटा लाने के लिए एक लाइब्रेरी (जो आम तौर पर सभी आधुनिक ब्राउज़रों में काम करती है)। Facebook recommends निम्नलिखित:
अगला, आपको इसे अपने रिएक्ट घटक में कहीं भी उपयोग करने की आवश्यकता है। आप कहां और कैसे करेंगे यह आपके विशिष्ट अनुप्रयोग और घटक पर निर्भर करेगा, लेकिन आम तौर पर मुझे लगता है कि विचार करने के लिए दो परिदृश्य हैं:
- प्रारंभिक डेटा (जैसे उपयोगकर्ताओं की एक सूची) प्राप्त करना।
- कुछ उपयोगकर्ता इंटरैक्शन के जवाब में डेटा प्राप्त करना (उदा। अधिक उपयोगकर्ताओं को जोड़ने के लिए बटन पर क्लिक करना)।
प्रारंभिक डेटा ला जीवन चक्र विधि componentDidMount()
में किया जाना चाहिए।React Docs से:
var UserGist = React.createClass({
getInitialState: function() {
return {
username: '',
lastGistUrl: ''
};
},
componentDidMount: function() {
this.serverRequest = $.get(this.props.source, function (result) {
var lastGist = result[0];
this.setState({
username: lastGist.owner.login,
lastGistUrl: lastGist.html_url
});
}.bind(this));
},
componentWillUnmount: function() {
this.serverRequest.abort();
},
render: function() {
return (
<div>
{this.state.username}'s last gist is
<a href={this.state.lastGistUrl}>here</a>.
</div>
);
}
});
ReactDOM.render(
<UserGist source="https://api.github.com/users/octocat/gists" />,
mountNode
);
यहाँ वे डेटा प्राप्त करने का jQuery का उपयोग करें। हालांकि यह ठीक काम करता है, ऐसा संभवतः ऐसा छोटा काम करने के लिए ऐसी बड़ी लाइब्रेरी (आकार के संदर्भ में) का उपयोग करना अच्छा विचार नहीं है।
उदाहरण के जवाब में डेटा प्राप्त करना एक क्रिया इस तरह किया जा सकता है:
var UserGist = React.createClass({
getInitialState: function() {
return {
users: []
};
},
componentWillUnmount: function() {
this.serverRequest && this.serverRequest.abort();
},
fetchNewUser: function() {
this.serverRequest = $.get(this.props.source, function (result) {
var lastGist = result[0];
var users = this.state.users
users.push(lastGist.owner.login)
this.setState({ users });
}.bind(this));
},
render: function() {
return (
<div>
{this.state.users.map(user => <div>{user}</div>)}
<button onClick={this.fetchNewUser}>Get new user</button>
</div>
);
}
});
ReactDOM.render(
<UserGist source="https://api.github.com/users/octocat/gists" />,
mountNode
);
आईई अभी भी एक बहुत लोकप्रिय ब्राउज़र है। जब तक हम नहीं जानते कि हमारे अधिकांश ग्राहक IE11 से बाहर हैं, हमें एक्सीओस जैसे कुछ का उपयोग करना है क्योंकि एपीआई एपीआई दुर्भाग्य से समर्थित नहीं है। – mbokil