Vue 路由的懒加载和组件的按需加载方法

本文详细介绍了Vue路由的懒加载方法,包括如何使用按需加载和非按需加载来优化页面加载性能。同时,阐述了Vue组件的异步加载与同步加载的区别,并通过实例演示了如何在实际项目中应用这些技术,以提高用户体验和减少资源浪费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// aview: function(resolve) {
       //     require(["./a.vue"], resolve);
       // },
       // bview: function(resolve) {
       //     require(["./b.vue"], resolve);
       // }
       aview:require("./a.vue"),
       bview:require("./b.vue"),

 

“懒加载也叫延迟加载,即在需要的时候进行加载,随用随载。在单页应用中,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,延时过长,不利于用户体验,而运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时。”

 

  • vue路由的懒加载方法

1 require(["src/xx/xxx/xx.vue"], resolve);


效果如图



按需加载会在页面第一次请求的时候,把相关路由组件块的js添加上;非按需加载则会把所有的路由组件块的js包打在一起。当业务包很大的时候建议用路由的按需加载(懒加载)。

  • vue组件的异步加载和同步加载

 组件的写法

 
// aview: function(resolve) {
       //     require(["./a.vue"], resolve);
       // },
       // bview: function(resolve) {
       //     require(["./b.vue"], resolve);
       // }
       aview:require("./a.vue"),
       bview:require("./b.vue"),

 

异步组件页面渲染的时候会跳动;但是同步书写不会

  • vue组件的按需加载(2种方式)

动态组件方式
组件里面:
 components: {
        aview: function(resolve) {
            require(["./a.vue"], resolve);
        },
        bview: function(resolve) {
            require(["./b.vue"], resolve);
        }
    },
 模板里面:
<component :is="current" :data="myData" ></component>
 data: function() {
        return {
            current: "",
            myData:"",
            show:false
        }
    },
    methods: {
        changeComponents:function(view)
        {
            if(view=='aview')
            {
                this.myData='a1000';
            }
            else
            {
                this.myData='b1000';
            }
            this.current=view;
        }
    }

效果(会触发组件的生命周期)

 

v-if方式(强制创建和结束生命周期)
模板:
<aview v-if="show"></aview>
组件:
components: {
        aview:require("./a.vue")
},

效果

转载于:https://www.cnblogs.com/Marinnn/p/9358383.html

Vue 组件懒加载路由懒加载都是为了优化应用性能而采用的技术手段,通过按需加载的方式减少初始加载时间。 ### Vue 组件懒加载 **组件懒加载**是指当某个特定的组件需要被渲染时才去动态导入该组件,而不是一开始就将所有组件打包在一起。这种方式可以显著减小初次加载的应用体积,提升用户体验。在 Vue 中通常结合 `import()` 函数来实现: ```javascript const MyComponent = () => import('./MyComponent.vue'); ``` 在这里,`import()` 返回的是一个 Promise 对象,只有当组件真正需要用到的时候才会触发网络请求下载组件代码并解析执行。 --- ### 路由懒加载 对于基于单页应用程序(SPA) 的项目来说,如果所有的页面都一次性全部加载到内存里会非常耗费资源,并且增加首屏加载耗时。因此我们可以对每个单独的路由也采取同样的策略——仅在其对应的路径访问时再进行加载。 以 vue-router 配置为例: ```javascript { path: '/about', name: 'About', // 使用箭头函数配合异步引入完成懒加载效果 component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue') } ``` 这里的 `webpackChunkName` 注释可以让 Webpack 将这些懒加载的内容分割成独立文件以便于更精细地管理缓存等操作。 这种技术不仅能有效降低首页包大小,同时还能提高 SEO 表现(针对服务端渲染的情况),并且有助于长期依赖更新后的增量发布流程简化维护工作量等问题解决。 --- #### 实际应用场景对比分析 | 特点 | 组件懒加载 | 路由懒加载 | |-------------------|--------------------------------------------|------------------------------------------| | **作用范围** | 单独某个组件 | 整个视图及其包含的所有组件 | | **适用场景** | 局部区域、非关键功能模块 | 页面级别的划分 | 无论是哪种形式,在实际开发过程中都需要权衡好项目的复杂程度以及用户交互习惯等因素综合考虑是否适合采用这样的机制来进行优化处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值