Vue: مكونات ملف واحد ديناميكية حقيقية

تم إنشاؤها على ٢٨ مايو ٢٠٢٠  ·  3تعليقات  ·  مصدر: vuejs/vue

ما المشكلة التي تحلها هذه الميزة؟

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

{
template: "<div>stuff</div>",
props: ...
etc.
}

هذا أمر محرج ، بالإضافة إلى أنه لا توجد طريقة سهلة لتضمين الأنماط.

مزيد من التفاصيل: https://stackoverflow.com/questions/62035019/load-vue-single-file-component-dynamically-at-runtime

أعتقد أن المنطق للقيام بذلك موجود ، لكنه في vue-loader ، ومخصص حقًا للاستخدام مع Webpack. Webpack غير مصمم للاستخدام في وقت التشغيل.

كيف تبدو واجهة برمجة التطبيقات المقترحة؟

<template>
  <div>
    The component goes here:
    <component :is="pluginComponent"></component>
  </div>
</template>
<script>
import { compileSFC } from "vue-template-compiler";
export default {
  data() {
    return {
      pluginComponent: null
    };
  },
  mounted() {
    // fetch code from some external source here
    let code = "<template><div>hello</div></template><style>some styles</style><script>some code</script>";
    let comp = compileSFC(code);
    this.pluginComponent = comp;
  }
};
</script>

التعليق الأكثر فائدة

حسنًا ، ولكن لا توجد وثائق كافية لاستخدامها فعليًا. لا توجد أمثلة.

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

import { createDefaultCompiler } from "@vue/component-compiler";

الرجاء عدم وضع علامة مغلق دون إضافة مثال استخدام بسيط. يمكن إضافة المثال إلى README ، واستخدامه أيضًا للإجابة على سؤال هذا الشخص: https://github.com/vuejs/vue-component-compiler/issues/93

ال 3 كومينتر

توجد بالفعل أدوات لتحقيق عملية التجميع الموجودة داخل أداة تحميل vue: https://github.com/vuejs؟q=compiler&type=&language=

حسنًا ، ولكن لا توجد وثائق كافية لاستخدامها فعليًا. لا توجد أمثلة.

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

import { createDefaultCompiler } from "@vue/component-compiler";

الرجاء عدم وضع علامة مغلق دون إضافة مثال استخدام بسيط. يمكن إضافة المثال إلى README ، واستخدامه أيضًا للإجابة على سؤال هذا الشخص: https://github.com/vuejs/vue-component-compiler/issues/93

posva أريد التأكد من أنك رأيت تعليقي أعلاه.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

paceband picture paceband  ·  3تعليقات

robertleeplummerjr picture robertleeplummerjr  ·  3تعليقات

6pm picture 6pm  ·  3تعليقات

paulpflug picture paulpflug  ·  3تعليقات

bdedardel picture bdedardel  ·  3تعليقات