• Vue中实现路由懒加载及组件懒加载


    Q:为什么要使用懒加载?

    A:为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题。

    Q:懒加载的定义是什么?

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

    Q:如何使用懒加载?

    A:常用的懒加载方式有两种:即使用vue异步组件 和 ES中的import

    Vue中的路由未用懒加载

    import Vue from 'vue'
                    import Router from 'vue-router'
                    import HelloWorld from '@/components/HelloWorld'
    
                    Vue.use(Router)
    
                    export default new Router({
                      routes: [
                        {
                          path: '/',
                          name: 'HelloWorld',
                          component:HelloWorld
                        }
                      ]
                    })
    

    异步实现懒加载 component:resolve=>(require(['需要加载的路由的地址']),resolve)

    import Vue from 'vue'
    import Router from 'vue-router'
      /* 此处省去之前导入的HelloWorld模块 */
    Vue.use(Router)
    
    export default new Router({
      routes: [
        {
          path: '/',
          name: 'HelloWorld',
          component: resolve=>(require(["@/components/HelloWorld"],resolve))
        }
      ]
    })
    

    ES 提出的import方法,(------最常用------)const HelloWorld = ()=>import('需要加载的模块地址')

    import Vue from 'vue'
    import Router from 'vue-router'
    
    Vue.use(Router)
    
    const HelloWorld = ()=>import("@/components/HelloWorld")
    export default new Router({
      routes: [
        {
          path: '/',
          name: 'HelloWorld',
          component:HelloWorld
        }
      ]
    })
    

    组件懒加载

    1、原写法

    <template>
    <div class="hello">
    <One-com></One-com>
    1111
    </div>
    </template>
    
    <script>
    import One from './one'
    export default {
    components:{
      "One-com":One
    },
    data () {
      return {
        msg: 'Welcome to Your Vue.js App'
      }
    }
    }
    </script>
    

    2、const方法

    <template>
      <div class="hello">
      <One-com></One-com>
      1111
      </div>
    </template>
    
    <script>
    const One = ()=>import("./one");
    export default {
      components:{
        "One-com":One
      },
      data () {
        return {
          msg: 'Welcome to Your Vue.js App'
        }
      }
    }
    </script>
    

    3、异步方法

    <template>
      <div class="hello">
      <One-com></One-com>
      1111
      </div>
    </template>
    
    <script>
    export default {
      components:{
        "One-com":resolve=>(['./one'],resolve)
      },
      data () {
        return {
          msg: 'Welcome to Your Vue.js App'
        }
      }
    }
    </script>
    

    总结

    路由和组件的常用两种懒加载方式:

    1、vue异步组件实现路由懒加载

      component:resolve=>(['需要加载的路由的地址',resolve])

    2、es提出的import(推荐使用这种方式)

      const HelloWorld = ()=>import('需要加载的模块地址')

    摘自:https://www.cnblogs.com/xiaoxiaoxun/p/11001884.html

  • 相关阅读:
    c#多线程
    [2017.02.05] 阅读《Efficient C++》思维导图
    [2017.02.04] C++学习记录(1)
    [2017.01.04] 经典排序算法思想及其实现
    [2017.01.04] 2017 新年展望
    [151225] Python3 实现最大堆、堆排序,解决TopK问题
    [160111] Python学习记录
    [151116 记录] 使用Python3.5爬取豆瓣电影Top250
    151111 sqlite3数据库学习
    20141127 测试使用Word2013书写博客(代码高亮+公式支持)。
  • 原文地址:https://www.cnblogs.com/zpsakura/p/12553258.html
Copyright © 2020-2023  润新知