React和Vue组件的懒加载

懒加载,也可以成为按需加载,即页面、数据或者组件在需要加载的时候才进行加载,在开始只加载需要的最少的静态资源和数据信息,尽快的展示首屏页面。现在先不谈技术,谈谈为什么需要按需加载。有调查显示:页面的加载速度会影响客户的使用体验,加载时间每增加1s,可能都会造成一定比例的客户流失。具体的调查结果和详细数据这里不表,这应该是一个公认的事实了。现在考虑下面两种情况:1、网站在开始加载了所有请求,从...
摘要由CSDN通过智能技术生成

懒加载,也可以成为按需加载,即页面、数据或者组件在需要加载的时候才进行加载,在开始只加载需要的最少的静态资源和数据信息,尽快的展示首屏页面。
现在先不谈技术,谈谈为什么需要按需加载。有调查显示:页面的加载速度会影响客户的使用体验,加载时间每增加1s,可能都会造成一定比例的客户流失。具体的调查结果和详细数据这里不表,这应该是一个公认的事实了。
现在考虑下面两种情况:
1、网站在开始加载了所有请求,从输入url到首屏展示需要15s,后续切换Tab页等等可以立马展示,不需再加载。
2、网站只加载首屏需要的最小资源的集合,从输入url到首屏展示需要3s,但是切换Tab页等等的时候需要加载必须的资源,从切换Tab页到页面展示可能需要1s。
两种情况你会选择哪一种,我想第二种情况选择的人数应该占绝大多数。让客户等待15s是一件不太可能的事情,除非别无他选,否则客户很可能投入友商的怀抱。从使用习惯的角度来看,切换Tab页,客户潜意识会告诉自己,这需要一点时间,就像输入url到页面显示一样。
现在说说如何实现组件的懒加载:

Vue组件懒加载

Vue 允许以工厂函数的方式定义组件,这个工厂函数会异步解析你的组件定义。Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染。
注意,Vue工厂函数异步解析组件,即代表我们可以在适当的时候加载组件,加载完毕后告诉Vue可以进行渲染了即可。看个例子:

Vue.component('async-example', function (resolve, reject) {
   
  setTimeout(function () {
   
    // 向 `resolve` 回调传递组件定义
    resolve({
      template: '<div>I am async!</div>'
    })
  }, 1000)
})

这里是一个定时器,我们也可以使用ajax请求组件,然后调用resolve即可。
在实际使用中,如何实现组件的懒加载呢?主要用在两个方面,一是路由中,二是动态组件。

1、路由中组件懒加载

假设有一个表单组件如下:

<template>
    <div id='form'>
        <h3>this is a form</h3>
        <p>
          <label>name:</label</
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值