Vue: 真正的动态单文件组件

创建于 2020-05-28  ·  3评论  ·  资料来源: vuejs/vue

这个功能解决了什么问题?

我有一个应用程序,第三方可以在其中创建插件。 我希望他们能够将这些插件创建为单个文件组件,就像内置组件一样被拉入和显示。 现在,他们唯一的方法就是以这种形式创建一个组件:

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

这很尴尬,而且没有简单的方法来包含样式。

更多详情: https :

我认为这样做的逻辑存在,但它在 vue-loader 中,并且真正打算与 Webpack 一起使用。 Webpack 不是为在运行时使用而设计的。

提议的 API 是什么样的?

<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>

最有用的评论

好的,但是没有足够的文档来实际使用它们。 没有例子。

我浏览了一些汇总代码以寻找一些,但即使是基本的导入也会产生大量编译错误,主要与 consolidate.js 相关:

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

请不要在没有添加简单使用示例的情况下将其标记为关闭。 这个例子可以添加到README中,也可以用来回答这个人的问题: https :

所有3条评论

vue-loader 内部已经有实现编译过程的工具: https : = compiler =& language

好的,但是没有足够的文档来实际使用它们。 没有例子。

我浏览了一些汇总代码以寻找一些,但即使是基本的导入也会产生大量编译错误,主要与 consolidate.js 相关:

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

请不要在没有添加简单使用示例的情况下将其标记为关闭。 这个例子可以添加到README中,也可以用来回答这个人的问题: https :

@posva想确保你看到了我上面的评论。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

gkiely picture gkiely  ·  3评论

robertleeplummerjr picture robertleeplummerjr  ·  3评论

franciscolourenco picture franciscolourenco  ·  3评论

finico picture finico  ·  3评论

fergaldoyle picture fergaldoyle  ·  3评论