博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue按需加载
阅读量:7292 次
发布时间:2019-06-30

本文共 1349 字,大约阅读时间需要 4 分钟。

概念(懒加载)

当打包构建应用时,JavaScript包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,嗯,这样就更加高效了。

场景

xxx项目作为一个单页面应用,采用组件化的开发模式,每次启动首页都会加载全部组件,但此时只是访问了首页而已,就造成了大量组件污染加载的情况。

目的

只在访问当前页面时加载对应组件,避免页面组件全部加载。(按需加载)

实现

app.vue

复制代码

router.js

import Vue from 'vue'import VueRouter from 'vue-router'import 'babel-polyfill'import {Promise} from 'es6-promise-polyfill'import App from '../components/app'// 定义路由,每个路由映射一个组件。const Routers = [    {        path: '/',   // 路径        component: resolve => require(['../components/member/index], resolve)   // 异步加载组件    },    {        path: '/login',        component: resolve => require(['../components/member/login'], resolve)    }]const RouterConfig = {    routes: Routers}// 创建router实例,并传递路由配置。const router = new VueRouter(RouterConfig);// 创建并挂载根实例。new Vue({    el:'#app',    router,    render: h =>(App)  //将h作为createElement的别名是一个通用惯例。})复制代码
注意:
  • require()函数接受两个参数。第一个参数是一个数组,表示所依赖的模块,例如['moduleA','moduleB'],第二个参数是一个回调函数,当前面指定的模块都加载成功后,它将被调用。加载的模块会以参数形式传入该函数,从而在回调函数内部使用这些模块。

  • 示例代码中使用了异步的方式加载组件,其中require函数负责异步引入将要渲染的组件,而resolve则负责异步回调渲染组件。

  • babel-polyfill:对Promise进行转码编译;

npm install --save babel-polyfill复制代码
  • es6-promise-polyfill 解决Promise兼容性问题。关于不太了解Promise的同学请移步
npm install --save es6-promise-polyfill复制代码

如有错误,请不吝指正。

转载于:https://juejin.im/post/5a21187cf265da4320030ba2

你可能感兴趣的文章
DevOps顾问行业开始快速增长
查看>>
Win10强势,微软必应搜索广告业务增长21%
查看>>
工信部公布29款问题手机App:极速WiFi万能钥匙上榜
查看>>
最具创新能力企业评选 苹果再度登顶
查看>>
2017年直播群雄逐鹿:社交直播会否收割行业未来?
查看>>
数据中心运维需要的三大认证
查看>>
诺基亚推物联网解决方案:创造可编程的世界
查看>>
如何利用开发者账号重签ipa文件,并部署到IOS设备做测试
查看>>
HPE实验室打造怪兽级The Machine内存系统
查看>>
云端应用监控服务商Datadog融资9450万美元
查看>>
《Web测试囧事》——1.4 利用JavaScript加载的漏洞提前购买抢购商品
查看>>
Line推出新语音群聊功能 最多支持200人
查看>>
通用功能测试用例
查看>>
汉能薄膜太阳能技术将国家电投大楼变身节能光伏建筑
查看>>
CloudCC CRM探讨中国云计算市场现状
查看>>
借助RDMA功能的互连实现您企业软件定义的数据中心基础设施的效率最大化
查看>>
关于视频编码器的作用详细介绍
查看>>
美国/韩国/荷兰/新加坡/德国的智慧城市发展现状
查看>>
基于SDN的云网协同是运营商混合云组网利器
查看>>
三伏天——探秘阿里云千岛湖数据中心
查看>>