为什么使用懒加载

为了客户更好的体验,首屏组件加载速度更快,解决白屏的问题

定义

懒加载简单的来说就是延迟或按需加载,即在需要的额时候进行加载

使用

1、未使用懒加载,Vue路由代码

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import HelloWorld from '@/components/HelloWorld'
  4. Vue.use(Router)
  5. export default new Router({
  6. routes: [
  7. {
  8. path: '/',
  9. name: 'HelloWorld',
  10. component:HelloWorld
  11. }
  12. ]
  13. })

2、vue异步组件实现懒加载、es6提出的import 方法

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3.   /* 此处省去之前导入的HelloWorld模块 */
  4. Vue.use(Router)
  5. export default new Router({
  6. routes: [
  7. {
  8. path: '/',
  9. name: 'HelloWorld',
  10. component:resolve=>(require(["@/components/HelloWorld"],resolve))
  11. }
  12. ]
  13. })
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. const HelloWorld = ()=>import("@/components/HelloWorld") //提前定义
  5. export default new Router({
  6. routes: [
  7. {
  8. path: '/',
  9. name: 'HelloWorld',
  10. component:HelloWorld
  11. }
  12. ]
  13. })

组件懒加载

使用

  1. <template>
  2. <div class="hello">
  3. <One-com></One-com>
  4. 1111
  5. </div>
  6. </template>
  7. <script>
  8. import One from './one'
  9. export default {
  10. components:{
  11. "One-com":One
  12. },
  13. data () {
  14. return {
  15. msg: 'Welcome to Your Vue.js App'
  16. }
  17. }
  18. }
  19. </script>

const 方法

  1. <template>
  2. <div class="hello">
  3. <One-com></One-com>
  4. 1111
  5. </div>
  6. </template>
  7. <script>
  8. const One = ()=>import("./one"); //组件懒加载
  9. export default {
  10. components:{
  11. "One-com":One
  12. },
  13. data () {
  14. return {
  15. msg: 'Welcome to Your Vue.js App'
  16. }
  17. }
  18. }
  19. </script>

AMD异步方法

  1. <template>
  2. <div class="hello">
  3. <One-com></One-com>
  4. 1111
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. components:{
  10. "One-com":resolve=>(['./one'],resolve)
  11. },
  12. data () {
  13. return {
  14. msg: 'Welcome to Your Vue.js App'
  15. }
  16. }
  17. }
  18. </script>