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