Vue: Komponen file tunggal dinamis sejati

Dibuat pada 28 Mei 2020  ·  3Komentar  ·  Sumber: vuejs/vue

Masalah apa yang dipecahkan oleh fitur ini?

Saya punya aplikasi tempat pihak ketiga dapat membuat plugin. Saya ingin mereka dapat membuat plugin tersebut sebagai komponen file tunggal, yang dapat ditarik dan ditampilkan seperti komponen bawaan. Saat ini, satu-satunya cara bagi mereka untuk melakukannya adalah dengan membuat komponen dalam formulir ini:

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

Ini canggung, ditambah tidak ada cara mudah untuk memasukkan gaya.

Lebih detail: https://stackoverflow.com/questions/62035019/load-vue-single-file-component-dynamically-at-runtime

Saya pikir logika untuk melakukan ini ada, tetapi ada di vue-loader, dan benar-benar dimaksudkan untuk digunakan dengan Webpack. Webpack tidak dirancang untuk digunakan saat runtime.

Seperti apa tampilan API yang diusulkan?

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

Komentar yang paling membantu

Oke, tetapi tidak ada dokumentasi yang cukup untuk benar-benar menggunakannya. Tidak ada contoh.

Saya mencari beberapa kode rollup, tetapi bahkan impor dasar menghasilkan banyak kesalahan kompilasi, sebagian besar berkaitan dengan konsolidasi.js:

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

Tolong jangan tandai ini sebagai tutup tanpa menambahkan contoh penggunaan sederhana. Contoh dapat ditambahkan ke README, dan juga digunakan untuk menjawab pertanyaan orang ini: https://github.com/vuejs/vue-component-compiler/issues/93

Semua 3 komentar

Sudah ada alat untuk mencapai proses kompilasi yang ada di dalam vue-loader: https://github.com/vuejs?q=compiler&type=&language=

Oke, tetapi tidak ada dokumentasi yang cukup untuk benar-benar menggunakannya. Tidak ada contoh.

Saya mencari beberapa kode rollup, tetapi bahkan impor dasar menghasilkan banyak kesalahan kompilasi, sebagian besar berkaitan dengan konsolidasi.js:

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

Tolong jangan tandai ini sebagai tutup tanpa menambahkan contoh penggunaan sederhana. Contoh dapat ditambahkan ke README, dan juga digunakan untuk menjawab pertanyaan orang ini: https://github.com/vuejs/vue-component-compiler/issues/93

@posva Ingin memastikan Anda melihat komentar saya di atas.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

paceband picture paceband  ·  3Komentar

fergaldoyle picture fergaldoyle  ·  3Komentar

wufeng87 picture wufeng87  ·  3Komentar

hiendv picture hiendv  ·  3Komentar

franciscolourenco picture franciscolourenco  ·  3Komentar