cari
Rumahhujung hadapan webtutorial jsCara Memuatkan Komponen Jauh dalam Vue 3

Latar belakang

Baru-baru ini saya menerima keperluan dalam projek kod rendah Vue 3 untuk memuatkan komponen jauh. Komponen jauh ini mempunyai nama yang tidak dapat diramalkan dan disimpan dalam pangkalan data. Saya perlu mengambil semua data komponen melalui API untuk menentukan komponen yang tersedia. Selepas penyelidikan, saya menemui dua penyelesaian yang berdaya maju untuk memenuhi keperluan ini.

Komponen UMD Fail HTML

Ini adalah penyelesaian paling mudah untuk dilaksanakan. Kami hanya perlu membungkus komponen dalam format UMD dan menggunakannya terus dalam fail HTML.

<div>



<p>However, this solution is not suitable for large projects due to its low efficiency.</p>

<h2>
  
  
  Vue 3 Project + ESM/UMD Components
</h2>

<p>This is the solution I implemented in my low-code project. During my research, I encountered and solved two main problems. Here's how it works:</p>

<h3>
  
  
  Problem 1: Relative References
</h3>

<p>Since our project doesn't need to be compatible with IE, we can package the source code in ESM format. For example:<br>
</p>

<pre class="brush:php;toolbar:false">import { reactive } from 'vue'
// other code...

kemudian gunakan dalam projek:

const { default: TestInput } = await import('http://localhost/component/input/0.1.0/bundle.mjs')

Apabila memuatkan komponen TestInput jauh seperti yang ditunjukkan di atas, ia menyebabkan ralat "Rujukan relatif mesti bermula dengan sama ada '/', './' atau '../'". Ini kerana penyemak imbas tidak menyokong secara langsung menggunakan import { reaktif } daripada 'vue' - kita perlu menukar 'vue' kepada https://..../vue.js atau './vue.js'. Biasanya, kami tidak perlu risau tentang perkara ini kerana alatan binaan kami mengendalikannya secara automatik.

Masalah 2: Konteks Vue 3 yang Berbeza

Percubaan pertama saya untuk menyelesaikan masalah pertama ialah membungkus komponen dengan semua kebergantungannya. Walaupun ini mengalih keluar semua penyata import, malangnya ia tidak berfungsi. Ini kerana konteks Vue 3 dalam projek kami dan konteks Vue 3 daripada node_modules tidak serasi - mereka perlu berkongsi konteks yang sama untuk berfungsi dengan betul.

How to Load Remote Components in Vue 3

Walaupun semua nama kaedah Vue 3 adalah sama merentas konteks yang berbeza, pembolehubahnya tidak sama. Ini menghalang komponen jauh daripada dimuatkan secara normal.

Penyelesaian

Untuk menyelesaikan masalah ini:

  1. Kami boleh menggantikan import { reaktif } daripada 'vue' dengan const { reactive } = Vue untuk mengelakkan ralat rujukan relatif.
  2. Kami boleh mengimport keseluruhan contoh Vue 3 dalam main.js dan bukannya membungkusnya dengan kod sumber. Ini memastikan projek dan komponen jauh kami menggunakan konteks Vue yang sama.

Untuk mengendalikan transformasi kod, saya mencipta pemalam rollup dipanggil rollup-plugin-import-to-const (menyokong kedua-dua vite dan rollup). Ia secara automatik menukar kod daripada import { reaktif } daripada 'vue' kepada const { reactive } = Vue. Dengan penyelesaian ini disediakan, kami boleh memuatkan komponen jauh dalam projek kami:

const { default: TestInput } = await import('http://localhost/component/input/0.1.0/bundle.mjs')

Sebenarnya, kami boleh memuatkan komponen dalam sebarang format (ESM/UMD/CJS, dll.) selagi kami menyelesaikan dua masalah ini.

Ringkasan

Memuatkan komponen jauh tidak terhad kepada dua penyelesaian ini. Sebagai contoh, kita juga boleh menggunakan vue3-sfc-loader atau Persekutuan Modul webpack5. Pilihan bergantung pada keperluan khusus projek anda.

Secara amnya, memuatkan komponen jauh paling kerap digunakan dalam platform kod rendah.

Atas ialah kandungan terperinci Cara Memuatkan Komponen Jauh dalam Vue 3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Ganti aksara rentetan dalam javascriptGanti aksara rentetan dalam javascriptMar 11, 2025 am 12:07 AM

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Bina Aplikasi Web Ajax anda sendiriBina Aplikasi Web Ajax anda sendiriMar 09, 2025 am 12:11 AM

Jadi di sini anda, bersedia untuk mempelajari semua perkara ini yang dipanggil Ajax. Tetapi, apa sebenarnya? Istilah Ajax merujuk kepada kumpulan teknologi longgar yang digunakan untuk membuat kandungan web yang dinamik dan interaktif. Istilah Ajax, yang asalnya dicipta oleh Jesse J

Bagaimana saya membuat dan menerbitkan perpustakaan JavaScript saya sendiri?Bagaimana saya membuat dan menerbitkan perpustakaan JavaScript saya sendiri?Mar 18, 2025 pm 03:12 PM

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Bagaimanakah saya mengoptimumkan kod JavaScript untuk prestasi dalam penyemak imbas?Bagaimanakah saya mengoptimumkan kod JavaScript untuk prestasi dalam penyemak imbas?Mar 18, 2025 pm 03:14 PM

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

kesan matriks jQuerykesan matriks jQueryMar 10, 2025 am 12:52 AM

Bawa kesan filem matriks ke halaman anda! Ini adalah plugin jQuery yang sejuk berdasarkan filem terkenal "The Matrix". Plugin mensimulasikan kesan aksara hijau klasik dalam filem, dan hanya pilih gambar dan plugin akan mengubahnya menjadi gambar gaya matriks yang diisi dengan aksara angka. Datang dan cuba, sangat menarik! Bagaimana ia berfungsi Plugin memuat imej ke kanvas dan membaca nilai piksel dan warna: data = ctx.getimagedata (x, y, settings.grainsize, settings.grainsize) .data Plugin dengan bijak membaca kawasan segi empat tepat gambar dan menggunakan jQuery untuk mengira warna purata setiap kawasan. Kemudian, gunakan

Bagaimanakah saya boleh debug kod javascript dengan berkesan menggunakan alat pemaju pelayar?Bagaimanakah saya boleh debug kod javascript dengan berkesan menggunakan alat pemaju pelayar?Mar 18, 2025 pm 03:16 PM

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Cara Membina Slider JQuery MudahCara Membina Slider JQuery MudahMar 11, 2025 am 12:19 AM

Artikel ini akan membimbing anda untuk membuat karusel gambar mudah menggunakan perpustakaan jQuery. Kami akan menggunakan perpustakaan BXSlider, yang dibina di atas jQuery dan menyediakan banyak pilihan konfigurasi untuk menubuhkan karusel. Pada masa kini, Gambar Carousel telah menjadi ciri yang mesti ada di laman web - satu gambar lebih baik daripada seribu perkataan! Selepas membuat keputusan untuk menggunakan karusel gambar, soalan seterusnya adalah bagaimana untuk menciptanya. Pertama, anda perlu mengumpul gambar-gambar resolusi tinggi yang berkualiti tinggi. Seterusnya, anda perlu membuat karusel gambar menggunakan HTML dan beberapa kod JavaScript. Terdapat banyak perpustakaan di web yang dapat membantu anda membuat karusel dengan cara yang berbeza. Kami akan menggunakan Perpustakaan BXSlider Sumber Terbuka. Perpustakaan BXSlider menyokong reka bentuk responsif, jadi karusel yang dibina dengan perpustakaan ini dapat disesuaikan dengan mana -mana

Cara memuat naik dan memuat turun fail CSV dengan sudutCara memuat naik dan memuat turun fail CSV dengan sudutMar 10, 2025 am 01:01 AM

Set data sangat penting dalam membina model API dan pelbagai proses perniagaan. Inilah sebabnya mengapa mengimport dan mengeksport CSV adalah fungsi yang sering diperlukan. Dalam tutorial ini, anda akan belajar cara memuat turun dan mengimport fail CSV dalam sudut

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini