आवश्यकताएँ: "आवश्यकताएँ" और "आवश्यकता" कार्यों के बीच अंतर


80

मैं 2 का उपयोग कर रहा हूँ। मुझे पता चला कि कुछ ट्यूटोरियल (और आधिकारिक डॉक्स) कभी-कभी उपयोग करते हैं

requirejs.config({ [...] });
requirejs(["module"]) ...

और कभी - कभी

require.config({ [...] });
require(["module"]) ...

क्या उन दो कार्यों (आवश्यकता और आवश्यकता) के बीच कोई अंतर है? मुझे डॉक्स में इसके बारे में कोई शब्द नहीं मिला। :(

जवाबों:


86

वे बिलकुल एक जैसे हैं।

कारण यह है कि कुछ वातावरण पहले से ही एक हो सकते हैं require, जिस स्थिति में आवश्यकता के अनुसार इसे अधिलेखित नहीं किया जाता है और लाइब्रेरी के उपयोग की अनुमति देता हैrequirejs

यह प्रतिबद्ध देखें - https://github.com/jrburke/requirejs/commit/be45948433b053921dc6a6a57bf06d04e13b3b39


15
धन्यवाद :) जो डॉक्स में नोट किया जाना चाहिए। कोड में टिप्पणी यह ​​स्पष्ट नहीं करती है।
मथायस बायर

मैं सहमत हूं, यह भ्रामक है (और यहां तक ​​कि "आधिकारिक" अपेक्षित पृष्ठ के उपयोग और उदाहरणों के बीच असंगतता है)। यह जानकर अच्छा लगा कि वे उसी में से एक हैं।
बिल सिमर

ब्राउजर में कॉमन जेजेएस (वेबपैक या ब्राउजर के माध्यम से) का उपयोग करने का अर्थ है कि आप भी पहुंच सकते हैं requirejsक्योंकि requireयह पहले से ही स्थानीय स्थिति में है। मैंने अतिरिक्त स्क्रिप्ट को लोड करने के लिए रिएक्ट घटकों में इसे उपयोगी पाया है componentDidMount
साइमन स्मिथ

1
अच्छा पुस्तकालय, भ्रामक प्रलेखन। यहां तक ​​कि "एपीआई" खंड एपीआई नहीं है, लेकिन एक "रसोई की किताब" का अधिक है। वहाँ बहुत सारे ट्यूटोरियल हैं जो आधिकारिक डॉक्स की तुलना में आरंभ करने के लिए बेहतर हैं।
हेल ​​50000

20

कर रहे हैं requirejsऔर requireएक ही?

आवश्यकता के अनुसार 2.1.15, requireऔर requirejsवैश्विक अंतरिक्ष में वास्तव में "बिल्कुल वैसा ही" है, जैसा कि इस परीक्षण से स्पष्ट किया जा सकता है कि आप कंसोल में प्रदर्शन कर सकते हैं:

> require === requirejs
true

परीक्षण रिटर्न trueआपको बताता है कि वे एक ही फ़ंक्शन ऑब्जेक्ट के समान हैं । वे दो कार्य नहीं हैं जो समान या समान कोड वाले होते हैं। वे एक ही वस्तु, काल हैं।

ध्यान दें, तथापि, जब आप निष्पादित कार्य करने के लिए पारित कर दिया सामान्य रूप से है विभिन्न वैश्विक सेdefine(['require'], function (require) {requirerequire

आप का उपयोग करना चाहिए requireया requirejs?

निर्भर करता है। NeedJS एक एएमडी लोडर है, लेकिन यह शहर में एकमात्र लोडर नहीं है। यदि आप एएमडी कल्पना के अनुरूप 100% कोड लिखना चाहते हैं , ताकि आपके कोड का उपयोग करने वाला कोई व्यक्ति आपके कोड को संशोधित किए बिना जो भी लोडर का उपयोग कर सकता है, तो आपको requireवैश्विक स्तर पर उपयोग करना चाहिए , क्योंकि आवश्यकताएँ के requirejsलिए विशिष्ट है। एक अन्य एएमडी लोडर इसे परिभाषित नहीं करेगा। एएमडी कल्पना परिभाषित करता है requireलेकिन नहीं requirejs

यदि आप कुछ और लोड कर रहे हैं जो एक वैश्विक को परिभाषित करता है requireतो आपको उपयोग करना होगाrequirejs संघर्ष से बचने के लिए वैश्विक स्तर पर करना होगा।

एक मॉड्यूल के अंदर, हमेशा defineएक संदर्भ प्राप्त करने के लिए उपयोग करें require। आपको वैश्विक स्तर पर संघर्ष हो रहा है या नहीं, इसके बारे में काफी सोच-विचार करना चाहिए।


2

ठीक है, वे वास्तव में "बिल्कुल समान" हो सकते हैं। आइए फिर ध्यान केंद्रित करें कि आप एक बनाम दूसरे का उपयोग क्यों करेंगे ...

स्पष्ट नहीं है कि क्या "सर्वश्रेष्ठ अभ्यास" माना जाना चाहिए: यदि आवश्यकताएं अतिरिक्त आश्वासन प्रदान करती हैं "यदि कुछ वातावरण में पहले से ही आवश्यकता हो सकती है", तो यह एक अच्छा विचार नहीं होगा कि हमेशा आवश्यकता कॉन्फ़िगरेशन को परिभाषित करने के लिए रिक्जेस्ट फ़ंक्शन का उपयोग करें फ़ंक्शन की आवश्यकता से?

इसके अलावा, क्या होता है अगर अकल्पनीय होता है और प्रश्न में पर्यावरण को न केवल "आवश्यकता" परिभाषित किया गया है, बल्कि "आवश्यकता" भी परिभाषित किया गया है? क्या इसका मतलब है कि हमारे पास आवश्यकताएं भी होनी चाहिए? और इसी तरह...?


1
तकनीकी रूप से वही हैं, जैसे हैं $और jQueryहैं। यह केवल एक वापसी प्रदान करने के लिए और एक अच्छा नागरिक होने के मामले में एक पर्यावरण पहले से ही उपयोग करता है require। यह बहुत ही किनारे का मामला है और इसका उपयोग करने की अनुशंसा की जाती है require, लेकिन यह आवश्यक नहीं है - github.com/amdjs/amdjs-api/blob/master/AMD.md#global-variables-
साइमन स्मिथ

0

वे एक ही ओपन वेबसाइट हैं जो पहले से ही लोड की आवश्यकता होती है

फिर क्रोम कंसोल खोलें

कंसोल में टाइप करें और एंटर दबाएं

कंसोल और प्रेस में आवश्यकता प्रकार टाइप करें

आप पा सकते हैं कि वे अलग-अलग नामों से समान कार्य कर रहे हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.