国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VITE+VUE3動(dòng)態(tài)導(dǎo)入組件

這篇具有很好參考價(jià)值的文章主要介紹了VITE+VUE3動(dòng)態(tài)導(dǎo)入組件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

概述

通常的動(dòng)態(tài)組件導(dǎo)入方式

??vue中又是時(shí)候我們會(huì)使用到動(dòng)態(tài)組件導(dǎo)入,比如路由組件的動(dòng)態(tài)導(dǎo)入,一般類似路由組件的動(dòng)態(tài)導(dǎo)入的方式:

()=>import(path);
()=>defineAsyncComponent(()=>import(path))

vite中使用的錯(cuò)誤

但是這寫方式進(jìn)行動(dòng)態(tài)導(dǎo)入組件的時(shí)候在vite+vue3項(xiàng)目下都是不行的,開(kāi)發(fā)環(huán)境下給與如下的警告提示:

The above dynamic import cannot be analyzed by Vite.
See https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations for supported dynamic import formats. If this is intended to be left as-is, you can use the /* @vite-ignore */ comment inside the import() 

如果是打包完成之后進(jìn)行運(yùn)行就會(huì)出現(xiàn)類似如下的錯(cuò)誤:

TypeError: Failed to fetch dynamically imported module: http://127.0.0.1:8080/view/home/test.vue

總之就是找不到組件。一開(kāi)始,我以為是路徑不對(duì),最后查了好久才發(fā)現(xiàn)在vite中動(dòng)態(tài)導(dǎo)入組件這種方式根本不行。那vite不讓使用這種方式進(jìn)行動(dòng)態(tài)導(dǎo)入路由,總得給個(gè)解決方案吧……

解決方案

??后來(lái)查看官網(wǎng)VITE找到了如下模塊導(dǎo)入功能方式:

import.meta.glob(path)

const modules = import.meta.glob('./dir/*.js')

// vite 生成的代碼
const modules = {
  './dir/foo.js': () => import('./dir/foo.js'),
  './dir/bar.js': () => import('./dir/bar.js')
}

??這個(gè)時(shí)候出現(xiàn)了新的問(wèn)題就是這個(gè)path不能使用變量,只能是固定值,這個(gè)在官網(wǎng)中有圖下注意說(shuō)明:

1. 這只是一個(gè) Vite 獨(dú)有的功能而不是一個(gè) Web 或 ES 標(biāo)準(zhǔn)
2. 該 Glob 模式會(huì)被當(dāng)成導(dǎo)入標(biāo)識(shí)符:必須是相對(duì)路徑(以 ./ 開(kāi)頭)或絕對(duì)路徑(以 / 開(kāi)頭,相對(duì)于項(xiàng)目根目錄解析)或一個(gè)別名路徑(請(qǐng)看 resolve.alias 選項(xiàng))。
3. Glob 匹配是使用 fast-glob 來(lái)實(shí)現(xiàn)的 —— 閱讀它的文檔來(lái)查閱 支持的 Glob 模式。
4. 你還需注意,所有 import.meta.glob 的參數(shù)都必須以字面量傳入。你 不 可以在其中使用變量或表達(dá)式。

??既然可以使用通配符,所以我們就可以通過(guò)以下方式來(lái)實(shí)現(xiàn)組件的動(dòng)態(tài)導(dǎo)入功能:

const viteComponents = import.meta.glob("../**/*.vue");

{
    component: viteComponents['../'+path], 
}

也就是說(shuō),組件在一開(kāi)始用已經(jīng)全部導(dǎo)入了,我們只是通過(guò)路徑獲取組件,所以只要匹配上路徑就能獲取到對(duì)應(yīng)的組件了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-621876.html

到了這里,關(guān)于VITE+VUE3動(dòng)態(tài)導(dǎo)入組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue3 + vite Cannot access ‘xxx‘ before initialization 組件熱更新失敗,es模塊循環(huán)引用問(wèn)題

    vue3 + vite Cannot access ‘xxx‘ before initialization 組件熱更新失敗,es模塊循環(huán)引用問(wèn)題

    問(wèn)題原因 本人 在 pinia stores 文件中使用了 router ,而main.ts 已經(jīng)引入過(guò)router main.ts pinia 下 modelCache.ts 文件 pinia 下 modelCache.ts 文件使用了router 并Model組件中 引入了modelCache.ts 該文件 這樣導(dǎo)致es模塊循環(huán) vite熱更新失敗 解決 pinia 下 modelCache.ts 文件 router 引入方式改為 函數(shù)引入 在

    2024年02月12日
    瀏覽(35)
  • Vue3+vite路由配置優(yōu)化(自動(dòng)化導(dǎo)入)

    Vue3+vite路由配置優(yōu)化(自動(dòng)化導(dǎo)入)

    今天在維護(hù)優(yōu)化公司中臺(tái)項(xiàng)目時(shí),發(fā)現(xiàn)路由的文件配置非常多非常亂,只要只中大型項(xiàng)目,都會(huì)進(jìn)入很多的路由頁(yè)面,規(guī)范一點(diǎn)的公司還會(huì)吧路由進(jìn)行模塊化導(dǎo)入,但是依然存在很多文件夾的和手動(dòng)導(dǎo)入的問(wèn)題。 于是我想到了我之前使用vuex時(shí)進(jìn)行的模塊化自動(dòng)導(dǎo)入js文件,能

    2024年02月08日
    瀏覽(24)
  • vue3+vite路由中使用element自動(dòng)導(dǎo)入圖標(biāo)

    vue3+vite路由中使用element自動(dòng)導(dǎo)入圖標(biāo)

    el-icon v-if=\\\"childItem.meta childItem.meta.icon\\\" ??????? ?component :is=\\\"childItem.meta.icon\\\" / /el-icon import { createRouter, createWebHashHistory } from \\\'vue-router\\\' import Layout from \\\'../layout/index.vue\\\' import { markRaw } from \\\'vue\\\' export const asyncRoutes = [ ? { ? ? path: \\\'/\\\', ? ? name: \\\'HomePage\\\', ? ? component: Layout, ? ? redir

    2024年02月15日
    瀏覽(23)
  • vue3 + vite 多項(xiàng)目多模塊打包

    vue3 + vite 多項(xiàng)目多模塊打包

    vue3 + vite 多項(xiàng)目多模塊打包 本示例基于 vite-plugin-html 插件,實(shí)現(xiàn)多個(gè)獨(dú)立項(xiàng)目共存,共享組件和依賴,運(yùn)行、打包互不干擾。 兼容性注意 Vite 需要 Node.js 14.18+、16+版本,有些模板需要更高的版本 雖然創(chuàng)建項(xiàng)目用的14.17.5版本,但是后面運(yùn)行項(xiàng)目用的18.15.0 HTML模板插件 打包一

    2024年02月10日
    瀏覽(114)
  • Vue3動(dòng)態(tài)路由(Vite+Vue3+TS+Mock)

    Vue3動(dòng)態(tài)路由(Vite+Vue3+TS+Mock)

    Vue通過(guò)路由進(jìn)行頁(yè)面管理,不同的路由綁定到不同的頁(yè)面。一般來(lái)說(shuō),前端直接寫好的路由為靜態(tài)路由,在不修改代碼的情況下,路由表是不會(huì)改變的。對(duì)于不需要?jiǎng)討B(tài)改變路由表的網(wǎng)站,靜態(tài)路由就已經(jīng)足夠了,但是當(dāng)頁(yè)面需要與權(quán)限進(jìn)行綁定時(shí),不同用戶允許瀏覽的頁(yè)面

    2024年02月02日
    瀏覽(25)
  • Vue3+Vite+TypeScript常用項(xiàng)目模塊詳解

    Vue3+Vite+TypeScript常用項(xiàng)目模塊詳解

    ? 目錄 1.Vue3+Vite+TypeScript 概述 1.1 vue3? 1.1.1 Vue3? 概述 1.1.2?vue3的現(xiàn)狀與發(fā)展趨勢(shì) 1.2 Vite 1.2.1 現(xiàn)實(shí)問(wèn)題 1.2 搭建vite項(xiàng)目 1.3 TypeScript 1.3.1 TypeScript 定義 1.3.2 TypeScript 基本數(shù)據(jù)類型 ?1.3.3 TypeScript語(yǔ)法簡(jiǎn)單介紹 2. 項(xiàng)目配置簡(jiǎn)單概述 2.1 eslint 校驗(yàn)代碼工具配置 2.1.1 eslint定義 2.1.2 esl

    2024年02月08日
    瀏覽(44)
  • vue3創(chuàng)建項(xiàng)目,vite+js

    vue3創(chuàng)建項(xiàng)目,vite+js

    之前的時(shí)候大哥就讓我自己搭架子,但是我拖延癥,現(xiàn)在用到了,得自己搭了 我的項(xiàng)目都放到了 VuePorjects這個(gè)目錄里面, 一、先進(jìn)入到指定工作目錄,(不是你要?jiǎng)?chuàng)建的項(xiàng)目的名稱哈) 二、創(chuàng)建vue3項(xiàng)目,安裝創(chuàng)建項(xiàng)目 ?@latest是項(xiàng)目名稱,可以自己修改項(xiàng)目名稱,然后選擇

    2024年02月16日
    瀏覽(27)
  • 前端 vite+vue3——寫一個(gè)隨機(jī)抽獎(jiǎng)組件

    前端 vite+vue3——寫一個(gè)隨機(jī)抽獎(jiǎng)組件

    大家好,我是yma16,本文分享關(guān)于前端 vite+vue3——寫一個(gè)抽獎(jiǎng)隨機(jī)組件。 vue3系列相關(guān)文章: 前端vue2、vue3去掉url路由“ # ”號(hào)——nginx配置 csdn新星計(jì)劃vue3+ts+antd賽道——利用inscode搭建vue3(ts)+antd前端模板 認(rèn)識(shí)vite_vue3 初始化項(xiàng)目到打包 python_selenuim獲取csdn新星賽道選手所在城

    2024年02月08日
    瀏覽(21)
  • Vue3的vite中圖片的動(dòng)態(tài)加載

    vite官網(wǎng)的靜態(tài)資源引入?yún)⒖嫉刂?new URL() + import.meta.url 注意:這里只能通過(guò) …/…/ 這種方式去獲取路徑,無(wú)法通過(guò)@/assets

    2024年02月16日
    瀏覽(32)
  • vite+vue3+ts項(xiàng)目中提示無(wú)法找到模塊

    今天在開(kāi)發(fā)過(guò)程中碰到了導(dǎo)入模塊時(shí)提示無(wú)法找到模塊這個(gè)問(wèn)題,分享一下我的解決思路 首先產(chǎn)生這個(gè)錯(cuò)誤是: 無(wú)法找到模塊XXX,并且提示\\\'XXX\\\' is declared but its value is never read 產(chǎn)生這個(gè)問(wèn)題的原因是我們使用了ts語(yǔ)法,他只能識(shí)別.ts文件,并不能識(shí)別.vue文件,所以在引入組件

    2024年02月11日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包