2016-09-29 10 views
6

मैं प्रतिक्रिया के साथ ES6 बेबेल का उपयोग कर रहा हूं, और अब नए संस्करण प्रतिक्रिया के लिए, प्रतिक्रिया दें कि डोम अब इसका हिस्सा नहीं है। नीचे कोड के लिए मेरा संदेह यह है कि, क्या यह पहली पंक्ति की आवश्यकता है? क्योंकि कहीं भी मुझे प्रतिक्रिया की आवश्यकता नहीं है, लेकिन आखिरी पंक्ति में मुझे ReactDOM की आवश्यकता है।प्रतिक्रिया बनाम प्रतिक्रिया डीओएम भ्रम

const React = require('react') 
const ReactDOM = require('react-dom') 

const App =() => { 
    return (
     <div className='app-container'> 
      <div className='home-info'> 
       <h1 className='title'>sVideo</h1> 
       <input className='search' type='text' placeholder='Search' /> 
       <button className='browse-all'> or Browse All</button> 
      </div> 
     </div> 
    ) 
} 

ReactDOM.render(<App />, document.getElementById('app')) 
+2

हां यह आवश्यक है। रिटर्न स्टेटमेंट 'रिएक्ट' में पारदर्शी है।createElement's और अन्य बयान। ReactDOM भी प्रतिक्रिया पर निर्भर करता है। – Li357

उत्तर

9

संस्करण 0.14 के बाद दो भागों में विभाजित है से प्रतिक्रिया: प्रतिक्रिया और ReactDOM। आप ReactDOM to render you HTML element का उपयोग कर रहे हैं। तो यह निश्चित रूप से आपके घटक में import ReactDOM आपके लिए समझ में आता है। लेकिन जहां तक ​​प्रतिक्रिया का सवाल है, हालांकि आप सीधे प्रतिक्रिया का उपयोग नहीं कर रहे हैं लेकिन अप्रत्यक्ष रूप से इसका उपयोग किया जा रहा है क्योंकि जो भी आप अपने return statement will be transpiled into React.createElement फ़ंक्शन में लिखते हैं जो वास्तविक DOM तत्व बनाएगा।

अब आप देख सकते हैं इस अगर आप अपने कोड में प्रतिक्रिया छोड़ देते हैं, तो आपको एक त्रुटि है कि

प्रतिक्रिया देखेंगे वर्तमान

नहीं है और यह आप दे देंगे React is not recognised in React.createElement. आशा है कि आप यह समझ ।

1
ReactDOM की डॉक्स से

:

इस पैकेज डोम से संबंधित प्रतिपादन रास्तों में से प्रवेश बिंदु के रूप में कार्य करता है। इसका उद्देश्य आइसोमोर्फिक रिएक्ट के साथ जोड़ा जाना है, जिसे एनपीएम पर प्रतिक्रिया के रूप में भेजा जाएगा।

तो आपके ReactDOM विशेष रूप से प्रतिपादन के लिए डीओएम संबंधित पथों के लिए है। यह उपयोग किया गया कड़ाई से रिएक्शन पैकेज के साथ मिलकर आने के लिए, लेकिन रिएक्ट में निर्मित डीओएम को हटा दिया गया है।

अब, फेसबुक अपने स्वयं के पैकेज के रूप में अलग-अलग रिएक्टडोम को भेजता है, इसलिए हां, आपको अपने ऐप में इसे शामिल करने की आवश्यकता है यदि आप अपनी किसी भी प्रतिक्रिया को प्रस्तुत करने की योजना बना रहे हैं। और आपको निश्चित रूप से React की आवश्यकता है - ReactDOM केवल डोम पक्ष है।


यहां एक reddit post that explains the separation from React and ReactDOM है।

प्रतिक्रिया टीम सभी डीओएम से संबंधित सामान को रीक्टडॉम नामक एक अलग पुस्तकालय में निकालने पर काम कर रही है। 0.14 पहली रिलीज है जिसमें पुस्तकालयों को विभाजित किया जाता है।

लिटिल मज़ा तथ्य है, क्योंकि वे पश्च संगतता समर्थन करना चाहते हैं, वे के प्रतिक्रिया आंतरिक डोम लेकिन यह in a funny way का उपयोग करने से लोगों को रोकते रखा।

0

वे किसी भी के लिए संस्करण 0.14 से अलग कर रहे हैं और परियोजना प्रतिक्रिया है, तो आप दोनों को शामिल करने की जरूरत है, ReactDOMप्रतिक्रिया पर बिछाने है, और प्रतिक्रिया, ReactDOMडोम को प्रदान की गई नहीं किया जा सका बिना , इसलिए उत्तर एक बड़ा हां है!

संबंधित मुद्दे