क्या डार्ट मौजूदा जावास्क्रिप्ट पुस्तकालयों के उपयोग का समर्थन करेगा?


108

मैं समझता हूं कि डार्ट जावास्क्रिप्ट के लिए संकलित है, और मैंने पुस्तकालयों पर डार्ट भाषा की युक्ति पढ़ी , हालांकि मुझे वहां कोई उत्तर नहीं मिला। इसके अलावा 'मौजूदा' शब्द के लिए उनके चर्चा फॉर्म पर एक खोज 3 परिणाम देती है जो संबंधित नहीं हैं।

किसी को पता है कि अगर डार्ट मौजूदा जावास्क्रिप्ट पुस्तकालयों जैसे jQuery या राफेल के उपयोग का समर्थन करेगा?


1
हालाँकि मैं अब प्रश्न पोस्ट कर रहा हूँ ।
TMB

जवाबों:


96

जवाब अब हाँ है! डार्ट अब अपने डार्ट ऐप के साथ मौजूदा जावास्क्रिप्ट कोड का उपयोग करने के लिए जेएस-इंटरॉप लाइब्रेरी को शिप करता है। यहां और जानें: https://www.dartlang.org/articles/js-dart-interop/


स्पष्टीकरण के लिए धन्यवाद, सेठ!
jtmcdole

@ सेठ मेरे पास एक अनुवर्ती प्रश्न था। क्या यह वास्तव में आपके लिए डार्ट से जावास्क्रिप्ट लाइब्रेरी का उपयोग करने के लिए बहुत मायने रखता है, जब डार्ट अंत में जावास्क्रिप्ट को बदलने के लिए है? और क्या डार्ट में विज़ुअलाइज़ेशन के लिए कुछ इनबिल्ट है?
अमित तोमर

2
@AmitTomar समुदाय तुरंत सभी JS पुस्तकालयों पर पोर्ट नहीं कर सकता है, इसलिए यह समझ में आता है कि JS पुस्तकालयों की विशाल मात्रा का उपयोग करें। चार्टिंग (विज़ुअलाइज़ेशन) के रूप में, मुझे केवल जेएस आधारित पुस्तकालयों के साथ इंटरोप के बारे में पता है।
सेठ लड्ड

@SethLadd धन्यवाद सेठ, यह मददगार था।
अमित तोमर

धन्यवाद सेठ, मैं यह भी प्रदर्शित करता हूं कि इस लेख में इसका उपयोग कैसे किया जाए ।
ग्राफिकबेकोन

15

आप डार्ट कोड से सीधे जावास्क्रिप्ट को कॉल नहीं कर पाएंगे। देशी निर्देश डार्टक (डार्ट: कोर, डार्ट: डोम, डार्ट: html, डार्ट: जसन, आदि) के मुख्य पुस्तकालयों के लिए आरक्षित है, जो खुद जावास्क्रिप्ट के लिए संकलित करता है।


क्या आपके पास इसके लिए कोई संदर्भ है?
टीएमबी

6
मैं dartc टीम पर काम करता हूं और आंतरिक रूप से मूल निर्देश और कीवर्ड को डार्ट करने के लिए प्रतिबंधित करने की बात करता है: केवल लाइब्रेरी। आप निश्चित रूप से किसी भी कोर फ़ंक्शंस को देख सकते हैं (जैसे आइसोलेट / कार्ट और आइसोलेट.जेएस) और एक फ़ंक्शन हस्ताक्षर के लिए "मूल" कीवर्ड को जोड़ते हुए देखें (ध्यान दें: डार्ट संस्करण में कोई निकाय) आपको एक मैंगल्ड जावास्क्रिप्ट फ़ंक्शन को कॉल करने की अनुमति नहीं देगा; लेकिन हम कोई वादा नहीं करते हैं कि हम आपको भविष्य में नहीं तोड़ेंगे।
jtmcdole

6
मैं वेब को एक स्वच्छ और विचारशील भाषा देने के आदर्श को समझता और सम्मान करता हूं, लेकिन मैं आपसे एक अंतर परत पर विचार करने का अनुरोध करता हूं। Microsoft ने Com से एक .net को यह सुनिश्चित करने में मदद की कि परियोजनाओं को वृद्धिशील रूप से माइग्रेट किया जा सके। यह .Net की सफलता में बिल्कुल भी बाधा नहीं है; मेरा मानना ​​है कि इसने इसे अपनाने में मदद की, हालांकि उन्होंने समय के साथ इसमें सुधार किया। यदि ब्रेकिंग एक ऐसी चीज है जो गंभीर चिंता का विषय है, तो प्रमुख पुस्तकालयों जैसे कि jQuery, MooTools और script.aculo.us के लिए एक आमंत्रण कार्यक्रम पर विचार करें। धन्यवाद।
टीएमबी

2
मैं आपको हमारे इश्यू ट्रैकर @ लिंक के माध्यम से एक सुविधा अनुरोध करने के लिए आमंत्रित करता हूं । मैं नहीं मानता कि यह निर्णय अभी तक पत्थर में डाला गया है।
jmmcdole

1
केवल यह इंगित करते हुए कि इसे फिर से एक मुद्दे के रूप में लाया गया है: code.google.com/p/dart/issues/detail?id=1108
jtmcdole

8

अब एक नया सरल तरीका है https://pub.dartlang.org/packages/js (वर्तमान में संस्करण 0.6.0-beta.6)

जेएस कक्षाओं और कार्यों को डार्ट के लिए उपलब्ध कराएं जैसे:

@JS("JSON.stringify")
external String stringify(obj);
@JS('google.maps')
library maps;

// Invokes the JavaScript getter `google.maps.map`.
external Map get map;

// `new Map` invokes JavaScript `new google.maps.Map(location)`
@JS()
class Map {
  external Map(Location location);
  external Location getLocation();
}

// `new Location(...)` invokes JavaScript `new google.maps.LatLng(...)`
//
// We recommend against using custom JavaScript names whenever
// possible. It is easier for users if the JavaScript names and Dart names
// are consistent.
@JS("LatLng")
class Location {
  external Location(num lat, num lng);
}

अधिक के लिए पैकेज की रीडमी देखें


4

इस धागे को चर्चा मंच से देखें: पुराने जावास्क्रिप्ट कोड को कॉल करना


1
वे मूल कीवर्ड का संदर्भ देते हैं, लेकिन मुझे वह लाइब्रेरी संदर्भ या भाषा विशेष में नहीं मिल रहा है।
टीएमबी

4

एक dart:jsपुस्तकालय भी है । और यहां एक लेख है जिसमें बताया गया है कि जावास्क्रिप्ट के साथ इंटरप्रिटेटिंग के लिए इस लाइब्रेरी का उपयोग कैसे करें।


1
ध्यान दें लिंक गलत है। डार्ट / जेएस जो मुख्य डार्ट पुस्तकालयों का हिस्सा है, जावास्क्रिप्ट के लिए इंटरफ़ेस का उपयोग करने के लिए बहुत आसान और क्लीनर है। मैं इस विषय पर कुछ भी आधिकारिक नहीं देख रहा हूं, लेकिन यह SDK का हिस्सा है: api.dartlang.org/stable/1.17.1/dart-js/dart-js-library.html
BeatingToADifententRobot
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.