zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    0593. Valid Square (M)
    0832. Flipping an Image (E)
    1026. Maximum Difference Between Node and Ancestor (M)
    0563. Binary Tree Tilt (E)
    0445. Add Two Numbers II (M)
    1283. Find the Smallest Divisor Given a Threshold (M)
    C Primer Plus note9
    C Primer Plus note8
    C Primer Plus note7
    C Primer Plus note6
  • 原文地址:https://www.cnblogs.com/zpsakura/p/12553258.html
Copyright © 2011-2022 走看看