当前位置:首页 > VUE

vue懒加载实现方式

2026-02-21 08:45:08VUE

Vue 懒加载实现方式

路由懒加载

通过动态导入语法实现路由组件按需加载,减少首屏加载时间。

const routes = [
  {
    path: '/home',
    component: () => import('./views/Home.vue')
  },
  {
    path: '/about',
    component: () => import('./views/About.vue')
  }
]

Webpack 会将动态导入的组件打包成单独的文件,在访问对应路由时才会加载。

组件懒加载

使用 Vue 的 defineAsyncComponent 方法实现组件懒加载。

import { defineAsyncComponent } from 'vue'

const AsyncComponent = defineAsyncComponent(() =>
  import('./components/AsyncComponent.vue')
)

在模板中像普通组件一样使用:

<template>
  <AsyncComponent />
</template>

图片懒加载

通过 v-lazy 指令或 Intersection Observer API 实现图片懒加载。

vue懒加载实现方式

使用 vue-lazyload 插件:

import VueLazyload from 'vue-lazyload'

Vue.use(VueLazyload, {
  preLoad: 1.3,
  error: 'error.png',
  loading: 'loading.gif',
  attempt: 1
})

在模板中使用:

<img v-lazy="imageUrl" />

懒加载指令

自定义懒加载指令,基于 Intersection Observer API。

vue懒加载实现方式

const lazyLoad = {
  mounted(el, binding) {
    const observer = new IntersectionObserver((entries) => {
      entries.forEach(entry => {
        if (entry.isIntersecting) {
          el.src = binding.value
          observer.unobserve(el)
        }
      })
    })
    observer.observe(el)
  }
}

app.directive('lazy', lazyLoad)

使用方式:

<img v-lazy="imageUrl" alt="Lazy loaded image">

懒加载库

使用第三方库如 lozad.js 实现更复杂的懒加载需求。

import lozad from 'lozad'

const observer = lozad('.lazy', {
  loaded: function(el) {
    el.classList.add('loaded')
  }
})
observer.observe()

HTML 中使用:

<img class="lazy" data-src="image.jpg">

注意事项

  • 懒加载可能影响 SEO,需确保搜索引擎能正确抓取内容
  • 考虑设置合理的预加载区域,避免用户等待
  • 对关键内容谨慎使用懒加载,保证用户体验
  • 移动端网络环境较差时,懒加载效果更明显

以上方法可根据实际需求组合使用,平衡性能和用户体验。

标签: 加载方式
分享给朋友:

相关文章

h5直播平台实现方式

h5直播平台实现方式

技术选型 H5直播平台的核心技术通常基于WebRTC或HLS协议。WebRTC适合低延迟互动场景,HLS更适合跨平台兼容性。前端可采用video.js或hls.js播放库,后端需要流媒体服务器如Ngi…

vue实现加载

vue实现加载

Vue 实现加载功能的方法 使用 v-if 或 v-show 控制加载状态 在模板中通过 v-if 或 v-show 控制加载动画的显示与隐藏。v-if 会完全移除 DOM 元素,而 v-show 仅…

jquery加载

jquery加载

jQuery 加载方法 使用 CDN 加载 jQuery 推荐通过公共 CDN(如 Google、Microsoft 或 jQuery 官方)加载,速度快且可能已被浏览器缓存。 <scr…

vue拖拽实现方式

vue拖拽实现方式

Vue 拖拽实现方式 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件(如 dragstart、dragend、dragover、…

jquery页面加载

jquery页面加载

jQuery 页面加载事件 在 jQuery 中,页面加载事件通常通过 $(document).ready() 或简写的 $() 来实现。这种方式确保代码在 DOM 完全加载后执行,但无需等待图片等资…

vue实现加载条

vue实现加载条

Vue 实现加载条的方法 使用第三方库(如 NProgress) 安装 NProgress 库: npm install nprogress 在 Vue 项目中引入并使用: import…