أنا فقط أفرغ عن غضبي هنا، ولكن بعد استخدام لغات قوالب أكثر مما أود أن أتذكر (Jinja2، ERB، FTL، XSLT، JSX، Handlebars، إلخ)، أجد أن Hyperscript مريع تمامًا في التعامل معه.
وبدون ترتيب محدد، تشمل الأمور التي تفشل فيها:
قابلية نقل الكود (لا يمكن نسخ/لصق مقاطع HTML دون تمريرها عبر محوّل)
تمييز بناء الجملة (يحوّل كل شيء إلى كتلة ضخمة) على سبيل المثال
أوافق تمامًا على أن التعامل معها ليس الأفضل، خاصة بالمقارنة مع Handlebars (الذي نستخدمه أيضًا) حيث يمكنك كتابة HTML كما تتوقع.
بدأنا في استخدام virtual-dom/virtual-hyperscript في الأماكن التي كنا بحاجة فيها إلى تحسين الأداء. وقد كان موضوع أنظمة القوالب المتعددة موضوعًا بدأنا في مناقشته مؤخرًا داخل فريقنا؛ لا نملك خططًا محددة بعد، لكننا ندرك أن تبسيط الأمر سيكون فكرة جيدة. ربما يعني هذا أننا لن نستخدم virtual-hyperscript بعد الآن؟ الوقت سيكشف.
التركيب النحوي غريب بعض الشيء بالنسبة للتعود عليه. أتذكر أنني شعرت بالارتباك الشديد تجاهه عندما بدأت لأول مرة في كتابة مواضيع Discourse، لكنني في النهاية فهمت كيفية عمله. من الممكن أيضًا توليد HTML خام عبر الـ widget.
لست الأكثر مهارة في تحديد متى وأين يجب استخدام كل شيء، لكنها خيار يُعتبر إذا كنت تقوم ببعض الأعمال المخصصة، وتحتاج إلى كتابة widget، وتواجه صعوبة في استخدام virtual-hyperscript.
أرى ذلك. هذا الجدول الزمني مفيد — شكرًا لك! إذن، أفترض أن أسهل مسار هو الانتظار حتى تصبح أداءات Glimmer مكافئة لـ virtual-dom، ثم التخلي عنها والعودة إلى Ember النقي؟
هذه الميزة رائعة، لكنني أواجه بعض الصعوبات في تشغيلها. لقد قمت باستدعاء discourse/widgets/hbs-compiler باستخدام require، لكنني ما زلت أحصل على error: hbs is not a function
نعم، قد يكون الانتقال شائكًا بعض الشيء. من حيث المبدأ، يمكننا بناء النسخة العكسية من html2hyperscript، لكن عمليًا، من المرجح أن يكون معظم كود hyperscript متشابكًا بشكل وثيق مع JavaScript الخاص بالعنصر التفاعلي، مما قد يحول الأمر بسرعة إلى كابوس.
أعتقد أن الحل الأبسط هو الحفاظ على دعم hyperscript لفترة من الوقت، وربما إلغاء تدريجي له لاحقًا؟
في الواقع، أقول العكس تمامًا؛ فكوننا قد عقلنا استخدام القوالب قبل إصدار Octane سيسهل علينا الانتقال إلى بناء الجملة باستخدام الأقواس الزاوية عندما نرغب في ذلك.
@edL أرى withPluginApi في تتبع الاستدعاء الخاص بك - هل تحاول استخدام مترجم hbs داخل وسم <script> في السمة؟ للأسف، لا يعمل مترجم هاندلبارز الخاص بالودجات في هذا السيناريو.