"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يمكن إعادة استخدام القيم الحرفية للقالب حقًا؟

هل يمكن إعادة استخدام القيم الحرفية للقالب حقًا؟

تم النشر بتاريخ 2024-11-07
تصفح:181

Can Template Literals Be Truly Reused?

القيم الحرفية للنماذج: إنعاش إعادة الاستخدام

غالبًا ما يتم وصف القيم الحرفية للنماذج في ES6 على أنها أدوات قوية لمعالجة النص، ولكن يظل هناك سؤال مزعج: هل يمكن إعادة استخدامها حقًا؟

توقعات غير قابلة للوفاء

للوهلة الأولى، يبدو أن القيم الحرفية للقالب تعد ببدائل ديناميكية فقط في وقت الإعلان. هذا يطرح السؤال: ما هو القالب الذي يظل ثابتًا؟

كسر الدورة

خلافًا للاعتقاد الشائع، يمكن إعادة تنشيط القيم الحرفية للقالب من خلال بدائل وقت التشغيل باستخدام الوظيفة المُنشئ كوسيط:

const template = "Hello ${this.name}!";
const variables = {
  name: "world"
};
function fillTemplate(str, data) {
  return new Function("return `"   str   "`;").call(data);
}
console.log(fillTemplate(template, variables)); // Output: Hello world!

تشريح قالب قابل لإعادة الاستخدام

تسمح هذه التقنية بما يلي:

  • وقت التشغيل الاستيفاء: تتم تعبئة المتغيرات ديناميكيًا، كما هو الحال في محركات القوالب التقليدية.
  • التجزئة: يمكن تخزين القوالب في ملفات منفصلة أو الحصول عليها ديناميكيًا.
  • الإنشاء الديناميكي: يمكن إنشاء النماذج وتقييمها سريعًا.

معالجة التحذيرات

في حين أن هذه الطريقة توفر وظائف متجددة، إلا أن هناك بعض منها تحذيرات:

  • جافا سكريبت محدود: منطق جافا سكريبت المضمن غير ممكن بسبب الاستيفاء المتأخر.
  • علامات القالب: علامات القالب تصبح صعبة للتنفيذ.
على الرغم من هذه القيود، فمن الواضح أنه مع القليل من البراعة، يمكن للقوالب الحرفية أن تتجاوز حدودها التقليدية وتصبح قابلة لإعادة الاستخدام حقًا.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3