// Vue 动态加载组件示例
// 1. 使用 import() 动态导入组件
const AsyncComponent = () => import('./components/MyComponent.vue');
// 2. 在 Vue 组件中使用动态加载的组件
new Vue({
el: '#app',
components: {
AsyncComponent // 注册动态加载的组件
},
template: '<AsyncComponent />' // 使用动态加载的组件
});
// 3. 使用 <component> 元素结合 v-bind:is 实现动态切换组件
new Vue({
el: '#app',
data() {
return {
currentComponent: 'ComponentA' // 初始组件名称
};
},
components: {
ComponentA: () => import('./components/ComponentA.vue'),
ComponentB: () => import('./components/ComponentB.vue')
},
template: `
<div>
<button @click="currentComponent = 'ComponentA'">Load Component A</button>
<button @click="currentComponent = 'ComponentB'">Load Component B</button>
<component :is="currentComponent"></component>
</div>
`
});
动态导入 (import()):
import() 是 ES6 模块系统的一部分,用于按需加载模块。它返回一个 Promise,当模块加载完成时会解析为该模块。AsyncComponent 是一个函数,返回一个 Promise,当需要渲染组件时才会执行导入操作,从而实现懒加载。注册和使用动态加载的组件:
Vue 实例中,通过 components 选项注册动态加载的组件。<AsyncComponent /> 标签在模板中引用该组件。动态切换组件:
<component> 元素结合 v-bind:is 属性可以动态地切换不同的组件。currentComponent 是一个数据属性,决定了当前显示哪个组件。currentComponent 的值,从而触发组件的动态加载和切换。这种方式不仅可以减少初始加载时间,还可以根据用户操作按需加载组件,提升应用性能。
上一篇:vue获取当前路由地址
下一篇:vue多语言
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站