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

わかりましたが、実際に使用するための十分なドキュメントがありません。 例はありません。

私はいくつかを探していくつかのロールアップコードを調べましたが、基本的なインポートでさえ、主にconsolidate.jsに関連する大量のコンパイルエラーを生成します。

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

簡単な使用例を追加せずに、これを閉じたとマークしないでください。 この例をREADMEに追加し、この人の質問に答えるために使用することもできます: https

@posva上記の私のコメントを見たことを確認したかった。

このページは役に立ちましたか?
0 / 5 - 0 評価