美文网首页VueVueJS
vue中的懒加载和按需加载

vue中的懒加载和按需加载

作者: Angrybird233 | 来源:发表于2018-09-05 21:47 被阅读415次

vue中的懒加载和按需加载

懒加载

(1)定义:懒加载也叫延迟加载,即在需要的时候进行加载,随用随载。

(2)异步加载的三种表示方法:

    1.  resolve => require([URL], resolve),支持性好
    2.  () => system.import(URL) , webpack2官网上已经声明将逐渐废除,不推荐使用 
    3.  () => import(URL), webpack2官网推荐使用,属于es7范畴,需要配合babel的syntax-dynamic- 

import插件使用。

(3)vue中懒加载的流程:
(4)Vue中懒加载的各种使用地方:

1.路由懒加载:

export default new Router({
  routes:[
    {
     path: '/my',
     name: 'my',
      //懒加载
     component: resolve => require(['../page/my/my.vue'], resolve),
    },
  ]
})

2.组件懒加载:

components: {
  historyTab:resolve => {
  require(['../../component/historyTab/historyTab.vue'],resolve)
  },   
},
  1. 全局懒加载:
Vue.component('mideaHeader', () => {
System.import('./component/header/header.vue')
})

按需加载

(1)按需加载原因:首屏优化,第三方组件库依赖过大,会给首屏加载带来很大的压力,一般解决方式是按需求引入组件。

(2)element-ui按需加载

element-ui 根据官方说明,先需要引入babel-plugin-component插件,做相关配置,然后直接在组件目录,注册全局组件。

  1. 安装babel-plugin-component插件:
npm install babel-plugin-component –D
  1. 配置插件,将 .babelrc修改为:
{
"presets": [
  ["es2015", { "modules": false }]
 ],
"plugins": [["component", [
   {
    "libraryName": "element-ui",
    "styleLibraryName": "theme-default"
   }
 ]]]
}

3.引入部分组件,比如 Button和 Select,那么需要在 main.js中写入以下内容:

  1. <code class="language-javascript">import Vue from 'vue'
  2. import { Button, Select } from 'element-ui'
  3. import App from './App.vue'</code>
Vue.component(Button.name, Button)Vue.component(Select.name, Select) /* 或写为 *Vue.use(Button) *Vue.use(Select) */

(3)iView按需求加载:

import Checkbox from'iview/src/components/checkbox';

特别提醒:

1.按需引用仍然需要导入样式,即在 main.js 或根组件执行 import 'iview/dist/styles/iview.css';
2.按需引用是直接引用的组件库源代码,需要借助 babel进行编译,以 webpack为例:

module: {
  rules: [
       {test: /iview.src.*?js$/, loader: 'babel' },
       {test: /\.js$/, loader: 'babel', exclude: /node_modules/ }
   ]
}

如下例子中:
//懒加载路由

const routes = [
  {          //当首次进入页面时,页面没有显示任何组件;让页面一加载进来就默认显示first页面
    path:'/',   //重定向,就是给它重新指定一个方向,加载一个组件;
    component:resolve => require(['@/components/First'],resolve)
  },
  {
    path:'/first',
    component:resolve => require(['@/components/First'],resolve)
  },
  {
    path:'/second',
    component: resolve => require(['@/components/Second'],resolve)
  }
//这里require组件路径根据自己的配置引入
]
//最后创建router 对路由进行管理,它是由构造函数 new vueRouter() 创建,接受routes 参数。
 
 const router = new VueRouter({
 routes
})

相关文章

  • vue中的懒加载和按需加载

    vue中的懒加载和按需加载 懒加载 (1)定义:懒加载也叫延迟加载,即在需要的时候进行加载,随用随载。 (2)异步...

  • 相关插件

    axios vue-router vuex vue-lazyload 图片懒加载 element-ui 按需加载 ...

  • 2019-05-10

    vue 组件按需引用,vue-router懒加载,vue打包优化,加载动画 当打包构建应用时,Javascript...

  • vue中的懒加载和按需加载

    懒加载 (1)定义:懒加载也叫延迟加载,即在需要的时候进行加载,随用随载。 (2)异步加载的三种表示方法: 1.r...

  • vue中组件懒加载

    vue中组件懒加载的方法 1.异步实现路由懒加载 2.import(推荐使用这种方式) 同理,路由懒加载和组件懒加...

  • Vue项目中路由和组件懒加载

    为什么要使用懒加载? 懒加载简单来说就是延迟加载或按需加载,即在需要的时候进行加载。使用懒加载可以带来更好的用户体...

  • VUE首屏加载优化

    (1)组件按需加载;对Element-UI, Mint-UI组件进行按需加载;(2)路由组建懒加载;异步加载con...

  • 打包构建

    1、babel中:组件库的按需加载 2、路由的webpackChunkName,路由的懒加载和拆包 3、loada...

  • Vue路由异步组件

    vue异步组件和懒加载可以优化vue的性能 一、 原理 利用webpack对代码进行分割是懒加载的前提,懒加载就是...

  • 用webpack实现模块懒加载、预取/预加载

    模块懒加载本身与webpack没有关系,webpack可以让懒加载的模块代码打包到单独的文件中,实现真正的按需加载...

网友评论

    本文标题:vue中的懒加载和按需加载

    本文链接:https://www.haomeiwen.com/subject/rdmzwftx.html