在Vue中使用動(dòng)態(tài)import()語(yǔ)法動(dòng)態(tài)加載組件
在Vue中使用動(dòng)態(tài)import()語(yǔ)法動(dòng)態(tài)加載組件
在Vue中,你可以使用動(dòng)態(tài)import()語(yǔ)法來(lái)動(dòng)態(tài)加載組件。動(dòng)態(tài)導(dǎo)入允許你在需要時(shí)異步加載組件,這樣可以提高應(yīng)用程序的初始加載性能。
下面是一個(gè)使用動(dòng)態(tài)導(dǎo)入加載組件的示例:
<template>
<div>
<button @click="loadComponent">加載組件</button>
<component :is="dynamicComponent"></component>
</div>
</template>
<script>
export default {
data() {
return {
dynamicComponent: null,
};
},
methods: {
loadComponent() {
// 動(dòng)態(tài)導(dǎo)入組件
import('./MyComponent.vue').then((module) => {
// 成功導(dǎo)入后,將組件注冊(cè)到Vue實(shí)例中
this.dynamicComponent = module.default;
}).catch((error) => {
// 處理導(dǎo)入失敗的情況
console.error('組件加載失敗:', error);
});
},
},
};
</script>在上面的示例中,當(dāng)你點(diǎn)擊"加載組件"按鈕時(shí),loadComponent方法會(huì)通過(guò)動(dòng)態(tài)導(dǎo)入加載MyComponent.vue組件。導(dǎo)入成功后,將組件注冊(cè)到Vue實(shí)例的dynamicComponent屬性中,然后使用標(biāo)簽來(lái)渲染該組件。
請(qǐng)注意,動(dòng)態(tài)導(dǎo)入是一個(gè)返回Promise的函數(shù),因此你可以使用.then()來(lái)處理導(dǎo)入成功的情況,并使用.catch()來(lái)處理導(dǎo)入失敗的情況。
Vue -- 動(dòng)態(tài)加載組件的四種方式
動(dòng)態(tài)加載組件的四種方式:
1、使用import導(dǎo)入組件,可以獲取到組件
var name = 'system';
import myComponent from '@/pages/components/' + name;
var route={
name: name,
component: myComponent
}
2、使用import導(dǎo)入組件,直接將組件賦值給componet
var name = 'system';
var route={
name: name,
component: () => import('../components/' + name + '.vue'); // 或者先賦值給變量 var myComponent =() => import('../components/' + name + '.vue');
}
3、使用require 導(dǎo)入組件,可以獲取到組件
var name = 'system';
var myComponent = resolve => require.ensure([], () => resolve(require('../components/' + name + '.vue')));
var route={
name: name,
component: myComponent
}
4、使用require 導(dǎo)入組件,直接將組件賦值給componet
var name = 'system';
var route={
name: name,
component(resolve) {
require(['../components/' + name + '.vue'], resolve)
}
}
vue路由跳轉(zhuǎn)push,replace,go
this.$router.replace({ path: "/subpagest" });//不會(huì)向 history 添加新記錄,而是跟它的方法名一樣 —— 替換掉當(dāng)前的 history 記錄;
this.$router.push({ path: "/subpagest" });//會(huì)向 history 棧添加一個(gè)新的記錄;
this.$router.go(-1);//這個(gè)方法的參數(shù)是一個(gè)整數(shù),意思是在 history 記錄中向前或者后退多少步。
提示:如果目的地和當(dāng)前路由相同,只有參數(shù)發(fā)生了改變 (比如從一個(gè)用戶資料到另一個(gè) /users/1 -> /users/2),可以使用 beforeRouteUpdate 來(lái)響應(yīng)這個(gè)變化 。
到此這篇關(guān)于在Vue中使用動(dòng)態(tài)import()語(yǔ)法動(dòng)態(tài)加載組件的文章就介紹到這了,更多相關(guān)vue動(dòng)態(tài)加載組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue3動(dòng)態(tài)加載組件以及動(dòng)態(tài)引入組件詳解
- Vue3的setup在el-tab中動(dòng)態(tài)加載組件的方法
- vue如何動(dòng)態(tài)加載組件詳解
- vue2.* element tabs tab-pane 動(dòng)態(tài)加載組件操作
- vue組件(全局,局部,動(dòng)態(tài)加載組件)
- Vue加載組件、動(dòng)態(tài)加載組件的幾種方式
- vue3+vite項(xiàng)目中按需引入vant報(bào)錯(cuò):Failed?to?resolve?import的解決方案
- vue3+vite引入插件unplugin-auto-import的方法
- Vue?import?from省略后綴/加載文件夾的方法/實(shí)例詳解
相關(guān)文章
element?el-tooltip實(shí)現(xiàn)自定義修改樣式
本文主要介紹了element?el-tooltip實(shí)現(xiàn)自定義修改樣式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Nginx配置Vue項(xiàng)目,無(wú)法按路徑跳轉(zhuǎn)及刷新404的解決方案
這篇文章主要介紹了Nginx配置Vue項(xiàng)目,無(wú)法按路徑跳轉(zhuǎn)及刷新404的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
vue 輸入框輸入任意內(nèi)容返回?cái)?shù)字的實(shí)現(xiàn)
本文主要介紹了vue 輸入框輸入任意內(nèi)容返回?cái)?shù)字的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
ElementUI Tag組件實(shí)現(xiàn)多標(biāo)簽生成的方法示例
這篇文章主要介紹了ElementUI Tag組件實(shí)現(xiàn)多標(biāo)簽生成的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
vue+vant-UI框架實(shí)現(xiàn)購(gòu)物車的復(fù)選框全選和反選功能
這篇文章主要介紹了vue+vant-UI框架實(shí)現(xiàn)購(gòu)物車的復(fù)選框全選和反選功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
使用VueRouter的addRoutes方法實(shí)現(xiàn)動(dòng)態(tài)添加用戶的權(quán)限路由
這篇文章主要介紹了使用VueRouter的addRoutes方法實(shí)現(xiàn)動(dòng)態(tài)添加用戶的權(quán)限路由,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06

