当前位置:首页 > VUE

vue实现懒加载的方法

2026-02-09 18:39:15VUE

Vue 实现懒加载的方法

路由懒加载

使用动态 import() 语法实现路由懒加载,适用于 Vue Router。代码示例:

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

Webpack 会将每个路由组件打包成单独的文件,按需加载。

组件懒加载

通过 defineAsyncComponent 实现组件懒加载,适用于 Vue 3:

import { defineAsyncComponent } from 'vue'

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

Vue 2 中可使用以下方式:

const AsyncComponent = () => ({
  component: import('./MyComponent.vue'),
  loading: LoadingComponent,
  error: ErrorComponent,
  delay: 200,
  timeout: 3000
})

图片懒加载

使用 v-lazy 指令或 Intersection Observer API 实现图片懒加载。安装 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:

vue实现懒加载的方法

Vue.directive('lazy', {
  inserted: (el, binding) => {
    const observer = new IntersectionObserver((entries) => {
      entries.forEach(entry => {
        if (entry.isIntersecting) {
          el.src = binding.value
          observer.unobserve(el)
        }
      })
    })
    observer.observe(el)
  }
})

懒加载库推荐

  • vue-lazyload:专为 Vue 设计的懒加载库
  • lozad.js:轻量级 Intersection Observer 实现
  • lazysizes:功能全面的懒加载解决方案

性能优化建议

设置合适的预加载区域和延迟时间,避免过度加载。对于大量数据列表,可结合虚拟滚动技术进一步提升性能。

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

相关文章

vue实现图片加载

vue实现图片加载

Vue 实现图片加载的方法 在 Vue 中实现图片加载可以通过多种方式,以下是一些常见的方法: 使用 v-bind 绑定图片路径 通过 v-bind 动态绑定图片路径,可以灵活地加载本地或远程图片。…

js实现图片的懒加载

js实现图片的懒加载

实现图片懒加载的基本原理 懒加载的核心思想是延迟加载非视口内的图片,当用户滚动页面时再动态加载即将进入视口的图片资源。这能显著减少页面初始加载时的网络请求和带宽消耗。 Intersection Ob…

vue实现加载图片

vue实现加载图片

Vue 实现图片加载的方法 在 Vue 中加载图片可以通过多种方式实现,以下是一些常见的方法: 使用静态资源路径 将图片放在 public 或 assets 目录下,通过相对路径或绝对路径引用。…

vue watch 实现方法

vue watch 实现方法

监听基本数据类型 在Vue中使用watch监听基本数据类型(如String、Number、Boolean)时,可以直接在watch选项中定义: data() { return { mes…

vue实现加载更多

vue实现加载更多

Vue 实现加载更多功能 在 Vue 中实现加载更多功能通常涉及监听滚动事件或点击按钮触发加载更多数据。以下是几种常见的实现方式: 滚动监听实现无限滚动 通过监听滚动事件,当用户滚动到页面底部时自动…

vue实现懒加载

vue实现懒加载

Vue 实现懒加载的方法 懒加载(Lazy Loading)是一种优化技术,用于延迟加载非关键资源,从而提升页面初始加载速度。Vue 中可以通过多种方式实现懒加载,以下是几种常见方法: 路由懒加载…