2017-01-24 10 views
6

मैं प्रतिक्रिया में नया हूं। मैं अपने खुद के एक छोटे से नमस्ते विश्व उदाहरण शुरू करना चाहता हूँ।प्रतिक्रिया वास्तव में एनएनवी पर नोडजेएस की आवश्यकता है?

अधिकांश ट्यूटोरियल कुछ इस तरह की पेशकश:

app.js

var React = require('react'); 
var ReactDOM = require('react-dom'); 
var reactElement = React.createElement('h1', { className: 'header' }, 
'This is React'); 
ReactDOM.render(reactElement, document.getElementById('react- 
application')); 

index.html

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1" /> 
    <title>Snapterest</title> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/ 
    bootstrap/3.3.5/css/bootstrap.min.css"> 
</head> 
<body> 
    <div id="react-application"> 
     I am about to learn the essentials of React.js. 
    </div> 
    <script src="./app.js"></script> 
</body> 
</html> 

समस्या यह है कि कि उदाहरण requeir के लिए NodeJS ((की आवश्यकता है) भाग) और एनपीएम स्थापित करें और एनपीएम शुरू करें .. वह सब।

मैं diffrently इस

तरह NodeJS बिना यह कर सकते हैं app.js

var reactElement = React.createElement('h1', { className: 'header' }, 
'This is React'); 
ReactDOM.render(reactElement, document.getElementById('react-application')); 

index.html

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1" /> 
    <title>Snapterest</title> 

    <script src=" /react-0.14.8.min.js"></script> 
<script src=" /react-dom-0.14.8.min.js"></script> 


</head> 
<body> 
    <div id="react-application"> 
    dsf 
    </div> 
    <script src="./app.js"></script> 
</body> 
</html> 
इस उदाहरण मैं निर्भरता आयात करने के लिए आदेश में cdn उपयोग कर रहा हूँ में

प्रतिक्रिया है कि nodejs एनपीएम स्थापित चरण में आयात करना चाहिए। सवाल यह है - कौन सा बेहतर है? क्या मैं सिर्फ सीडीएन का उपयोग कर सकता हूं और नोडज का उपयोग नहीं कर सकता? क्या प्रतिक्रिया सामग्री रखने के लिए नोडजे और एनपीएम मॉड्यूल (या बॉवर ..) होना सही है?

धन्यवाद

उत्तर

6

सवाल शीर्षक में उत्पन्न करने के लिए जवाब नहीं है, तो आप ग्राहक के पक्ष पर प्रतिक्रिया का उपयोग करने के Node.js की आवश्यकता नहीं है । node.js. का कोई उल्लेख के बिना ग्राहक के पक्ष प्रतिक्रिया का उपयोग कर -

वास्तव में, दूसरे उदाहरण आप दे सिर्फ इतना है कि क्या कर रहा है

यानी, Node.js कि बहुत उपयोगी होते हैं जब प्रतिक्रिया आधारित अनुप्रयोगों के निर्माण के उपयोग करने के लिए अलग अलग तरीके के एक जोड़े हैं।

एक स्वच्छ, साफ पैकेज है जो आप तो ग्राहक की सेवा में अपने क्लाइंट-साइड कोड बंडल करने browserify या webpack की तरह एक Node.js आधारित निर्माण उपकरण का उपयोग करें।

उदाहरण के लिए, एक परियोजना में मैं पर काम कर रहा हूँ, मैं browserify का उपयोग जो मेरे index.html में एक सादे पुराने <script> टैग के माध्यम से शामिल किया गया है public/js/bundle.js पर बचाया एक भी जावास्क्रिप्ट फ़ाइल का निर्माण करने और यह सब अपाचे द्वारा कार्य किया है। यह बंडल अपने आवेदन कोड (सहित कुछ घटकों प्रतिक्रिया) (react और react-dom, अन्य बातों के अलावा सहित) अपने आवेदन कोड के लिए सभी निर्भरता के साथ शामिल हैं। ग्राहक के लिए मुख्य लाभ पृष्ठ के लिए अनुरोधों की संख्या को कम करना और बैंडविड्थ आवश्यक है (क्योंकि मैं पूरे बंडल को कम करने के लिए UglifyJS का उपयोग कर सकता हूं)। डेवलपर के लिए मुख्य लाभ यह है कि आप इस तरह के Babel के रूप में उपकरण का उपयोग कर सकते हैं सादे पुराने जावास्क्रिप्ट के बजाय .jsx कोड लिखने के लिए है - यह उत्पादकता के लिए एक जबरदस्त बढ़ावा है।

Node.js

वहाँ नोड के साथ पूरे एप्लिकेशन निर्माण के बारे में हाल के वर्षों में चर्चा का एक बहुत कुछ किया गया है में एक HTTP सर्वर लिखें।जेएस - क्लाइंट-साइड और सर्वर-साइड। यहां मुख्य लाभ कोड पुन: उपयोग है: कल्पना करें कि आपने एक पुस्तकालय लिखा है जो तिथियों के साथ कुछ फैंसी करता है। यदि आप जावास्क्रिप्ट में अपने क्लाइंट-साइड कोड और PHP में अपने सर्वर-साइड कोड लिख रहे हैं, तो आपको उस लाइब्रेरी को फिर से लिखना होगा; यदि आप दोनों तरफ node.js का उपयोग कर रहे हैं, तो आपको केवल एक बार ऐसा करने की आवश्यकता है।

Node.js में एक HTTP सर्वर लिखें और अपने प्रतिक्रिया आवेदन के साथ एकीकृत

एकल पृष्ठ अनुप्रयोग (एसपीए) के साथ लिखा प्रतिक्रिया एक समस्या है: पेज जावास्क्रिप्ट कोड जब तक गाया नहीं प्राप्त करता है ग्राहक द्वारा प्राप्त और निष्पादित किया जाता है। इसका अर्थ यह है कि क्लाइंट जो जावास्क्रिप्ट निष्पादित नहीं करते हैं, वे कुछ भी नहीं देखेंगे - जैसे Google के वेब क्रॉलर। इसलिए यदि आप अपने पेज को अनुक्रमित करना चाहते हैं, तो ग्राहक द्वारा अनुरोध किए जाने पर आपको पूरी तरह से प्रस्तुत पृष्ठ की सेवा करने के लिए कुछ तरीका पता लगाना होगा। इसका समाधान सर्वर-साइड रिएक्ट रेंडरिंग है। यह एक चुनौतीपूर्ण विषय है, और यदि आप इसमें दिलचस्पी रखते हैं तो मैं आपको कुछ गुगलिंग करने के लिए प्रोत्साहित करता हूं।

अब आपके प्रश्न के लिए: जो बेहतर है? हमेशा की तरह, यह आपकी आवश्यकताओं पर निर्भर करता है।

मेरी परियोजनाओं में से एक विरासत PHP एप्लिकेशन है जहां मैं प्रतिक्रिया घटकों का उपयोग करने के लिए कुछ फ्रंट-एंड कोड को फिर से लिख रहा हूं। क्या मुझे node.js HTTP सर्वर या सर्वर-साइड प्रतिपादन की आवश्यकता है? नहीं, कदापि नहीं। लेकिन मैं अपने जीवन को एक डेवलपर के रूप में आसान बनाने के लिए बेबेल और ब्राउज़र का उपयोग कर रहा हूं।

मेरी व्यक्तिगत परियोजनाओं में से एक Next.js नामक एक ढांचे का उपयोग करके लिखा गया एक छोटा सा एसपीए है जो सर्वर-साइड प्रतिपादन को शामिल करने वाला सुंदर अत्याधुनिक है। मैं निश्चित रूप से अन्य तकनीकों को इस परियोजना लिख ​​सकता है, लेकिन मैं क्लाइंट और सर्वर इस मिलता है कि दोनों के बीच साझा codebase तरह से करते हैं।

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