zoukankan      html  css  js  c++  java
  • vue的路由懒加载、组件懒加载

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

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

    一、 路由懒加载
    1、未用懒加载,vue中路由代码如下
     1 import Vue from 'vue'
     2 import Router from 'vue-router'
     3 import HelloWorld from '@/components/HelloWorld'
     4 
     5 Vue.use(Router)
     6 
     7 export default new Router({
     8   routes: [
     9     {
    10       path: '/',
    11       name: 'HelloWorld',
    12       component: HelloWorld
    13     }
    14   ]
    15 })

    2、 ES 提出的import方法,(------最常用------)

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

    3、异步加载vue组件实现懒加载

    component: resolve => require(['@/components/HelloWorld'], 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)
        }
      ]
    })

     有时候我们想把某个路由下的所有组件都打包在同个异步块 (chunk) 中。只需要使用 命名 chunk,一个特殊的注释语法来提供 chunk name (需要 Webpack > 2.4)。

    1 const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue')
    2 const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue')
    3 const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue')
    二、组件懒加载
    1、 默认写法
     1 <template>
     2   <div class="hello">
     3   <One-com></One-com>
     4   1111
     5   </div>
     6 </template>
     7 
     8 <script>
     9 import One from './one'
    10 export default {
    11   components:{
    12     "One-com":One
    13   },
    14   data () {
    15     return {
    16       msg: 'Welcome to Your Vue.js App'
    17     }
    18   }
    19 }
    20 </script>

    2、 ES的import写法

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

    3、 require异步加载组件的方式

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


  • 相关阅读:
    Ubuntu 截图工具Flameshot
    django 执行原生的sql
    tensorflow学习笔记(3)前置数学知识
    tensorflow学习笔记(2)-反向传播
    tensorflow学习笔记(1)-基本语法和前向传播
    深度学习-tensorflow学习笔记(1)-MNIST手写字体识别预备知识
    数据结构-查找-散列表的线性探测已经拉链法的查找
    数据结构-查找-折半查找-二叉排序树查找
    数据结构-查找-线性表查找技术
    数据结构-排序-直接插入排序
  • 原文地址:https://www.cnblogs.com/shine-lovely/p/14001019.html
Copyright © 2011-2022 走看看