مكتبة JavaScript GUI التي يمكن استخدامها من ClojureScript؟
-
12-12-2019 - |
سؤال
في أحد مشاريعي الجارية لتطوير الويب، نحتاج إلى إنشاء صفحة (في الواقع تطبيق صغير خاص بها) والتي سيكون لها واجهة تفاعلية "Web 2.0"، تشبه تطبيق سطح المكتب الرسومي أكثر من كونها صفحة ويب نموذجية.
آمل أن أستخدم لغة ذات مستوى أعلى يمكن ترجمتها إلى JS للمنطق من جانب العميل، بدلاً من البرمجة مباشرة في JS، وCljureScript هو خياري الأول.
أنا أبحث عن مكتبة JS GUI التي يمكن استخدامها من داخل ClojureScript، والتي تدعم نمط برمجة مشابه لمكتبات واجهة المستخدم الرسومية "سطح المكتب" مثل Swing وQT وwxWidgets وما إلى ذلك.يجب أن يسمح لي بإنشاء نافذة منبثقة <div>
"windows"، ضع عناصر واجهة المستخدم مثل الأزرار/التسميات/إلخ.فيها، قم بإرفاق معالجات الأحداث بالأدوات، وما إلى ذلك.هل تعرف واحدة من شأنها أن تعمل؟
المحلول
يجب أن تفكر في مكتبة إغلاق Google.إنه يحتوي على جميع الميزات التي تطلبها وهو بالتأكيد قابل للاستخدام من ClojuresScript، لقد جربته.يرى http://closure-library.googlecode.com/svn-history/r1430/docs/index.html
نصائح أخرى
لا يزال Clojurescript شابًا - لا أعتقد أن هناك أطر عمل ناضجة بهذا العيار (حتى الآن؟).بعد قولي هذا، أقوم بإنشاء واجهة مستخدم باستخدام المكونات التالية:
- تويتر بوتستراب + JQuery للمرئيات وعناصر واجهة المستخدم
- صديق تشاس إميريك للمصادقة من جانب الخادم
- قهر + الدائري + جيتي للخادم
- قفص (كلوجرسكريبت حازوق) لتوليد HTML/dom
- جايك لتغليف JQuery
- أحضر و/أو شورليفأجهزة التحكم عن بعد الخاصة بـ RPC لخادم العميل
- آلية Pubsub الخاصة بـ Shoreleave أو آلية Clojure
add-watch
لربط البيانات
من الميزات الجيدة لـ Clojure وClojurescript أنهم يفضلون الوظائف البسيطة في هياكل البيانات العامة.ولهذا السبب تميل إلى رؤية العديد من المكتبات الصغيرة التي تقوم بمهمة واحدة محددة، ولكنها تعمل بشكل جيد معًا، على عكس الأطر المتجانسة العملاقة مع نموذج الكائن الذي يتطلب منك اعتماد طريقة واحدة للتفكير بشكل كامل.
أعتقد أن ExtJS سيكون الأفضل في حالتك، على الرغم من أن هذا هو JS خالص.هذه هي مكتبة واجهة المستخدم الرسومية على الويب الأكثر تقدمًا في الوقت الحالي وتتيح إنشاء تطبيقات الويب بطريقة مشابهة لتلك التي تستخدم لغات سطح المكتب وبيئات التطوير المتكاملة.فقط تحقق من بهم العروض التوضيحية.لا أعتقد أنه سيكون هناك شيء مشابه لـ ClojureScript في المستقبل المنظور.