मेरे पास इस तरह एक प्रतिक्रिया ऐप है।क्या एचटीएमएल पेज से एक प्रतिक्रिया घटक में डेटा पास करने का कोई सही तरीका है?
var X = React.createClass({
componentDidMount: function() {
fetch(this.props.feed).then(...);
}
render: function() {
return <div>{this.props.feed}</div>
}
});
फ़ीड प्रोप का उपयोग घटक में जेएसओएन फ़ीड प्राप्त करने के लिए किया जाता है जो कि किसी विशेष ग्राहक के लिए अद्वितीय है।
यह parameterise करने के लिए HTML से मेरी प्रतिक्रिया एप्लिकेशन में डेटा पारित करने के लिए सुविधाजनक होगा:
<html>
<body>
<div id="app" feed='custom_feed.json'></div>
</body>
</html
मेरे वर्तमान समाधान इस तरह दिखता है:
var root = document.getElementById('app');
var feed = root.getAttribute('feed')
ReactDOM.render(<X feed={feed}/>, root);
यह स्पष्ट रूप से काम करता है, लेकिन यह महसूस करता है जैसे कि एक और बेवकूफ समाधान होना चाहिए। क्या ऐसा करने के लिए एक और अधिक सही तरीका है?
एचटीएमएल:
<div id="app" data-feed='custom_feed.json' data-someprop='value'></div>
जे एस:
var root = document.getElementById('app');
ReactDOM.render(<X {...(root.dataset)} />, root);
संपादित करें: demo fiddle
इस उपयोग के मामले का उद्देश्य क्या है? यदि यह HTML में "फ़ीड" का टेम्पलेट प्रतिपादन है, तो आपके पास सही टेम्पलेट के साथ आपके टेम्पलेट में ReactDOM.render हो सकता है। एक प्रतिक्रिया ऐप शुरू करने के लिए डीओएम पैरामीटर का उपयोग करना बहुत असामान्य है और वास्तव में अनुशंसित नहीं है। मुझे नहीं लगता कि इसे करने का एक आसान तरीका भी है। – Mijamo
मैं अपने ऐप को एसपीए में बदलने के लिए तैयार नहीं हूं। मेरा एचटीएमएल एक रूबी स्क्रिप्ट के साथ उत्पन्न होता है। प्रतिक्रिया घटक वास्तव में एक स्थिर पृष्ठ का एक छोटा सा हिस्सा है। कोणीय में मैं पृष्ठ पर ' ' ड्रॉप कर सकता था। मुझे स्पष्ट रूप से इस बारे में गलत तरीके से गलत बताया जा रहा है। –
superluminary
Django से यहां आया, इसी तरह के उपयोग के मामले – binithb