图片使用 img 标签引入
- 懒加载
- 技术点:利用浏览器的原生
loading="lazy"
属性。当设置该属性后,浏览器会在图片进入视口时才加载图片,从而实现懒加载效果。
- 示例:
<img src="your - image - url.jpg" alt="example" loading="lazy">
- 按需加载
- 技术点:结合 Vue 的响应式原理和条件渲染。在需要显示图片的地方,根据某个条件(比如用户操作、特定状态等)来决定是否渲染
img
标签。
- 示例:
<template>
<div>
<button @click="showImage = true">显示图片</button>
<img v - if="showImage" src="your - image - url.jpg" alt="example">
</div>
</template>
<script>
export default {
data() {
return {
showImage: false
};
}
};
</script>
组件内的脚本和样式
- 懒加载(组件)
- 技术点:Vue 的异步组件。使用
defineAsyncComponent
方法(Vue 3)或 () => import('组件路径')
语法(Vue 2 和 Vue 3)来定义异步组件,只有在组件需要渲染时才会加载其脚本和样式。
- 示例(Vue 3):
<template>
<div>
<button @click="loadComponent = true">加载组件</button>
<component v - if="loadComponent" :is="asyncComponent"></component>
</div>
</template>
<script>
import { defineAsyncComponent } from 'vue';
export default {
data() {
return {
loadComponent: false,
asyncComponent: defineAsyncComponent(() => import('./AsyncComponent.vue'))
};
}
};
</script>
<template>
<div>
<button @click="loadComponent = true">加载组件</button>
<component v - if="loadComponent" :is="asyncComponent"></component>
</div>
</template>
<script>
export default {
data() {
return {
loadComponent: false,
asyncComponent: () => import('./AsyncComponent.vue')
};
}
};
</script>
- 按需加载(脚本和样式)
- 相关插件:
vue - lazy - load - style
插件(可用于按需加载样式)。对于脚本,可以结合动态 import()
语法。
- 按需加载样式示例(使用 vue - lazy - load - style):
- 安装:
npm install vue - lazy - load - style
- 使用:
<template>
<div>
<button @click="loadStyle = true">加载样式</button>
<lazy - load - style v - if="loadStyle" :src="styleUrl"></lazy - load - style>
</div>
</template>
<script>
import LazyLoadStyle from 'vue - lazy - load - style';
export default {
components: {
LazyLoadStyle
},
data() {
return {
loadStyle: false,
styleUrl: './styles.css'
};
}
};
</script>
<template>
<div>
<button @click="loadScript">加载脚本</button>
</div>
</template>
<script>
export default {
methods: {
loadScript() {
import('./your - script.js').then(() => {
// 脚本加载完成后的操作
});
}
}
};
</script>