关于vue的懒加载实践

news/2024/7/6 23:40:02

最近在研究vue的按需加载,好奇怪,之前好像并没有看到vue的官文里面有这一部分,是我看差了吗hahaha~尬笑~

其实只需要看vue-router官文就可以了,里面有懒加载的讲解,并且附带了详细内容的连接。一个一个看过去,很容易操作了。
于是我看了一下。做个记录,防止忘记了又要重新看一遍。
首先是使用的vue-cli构建的简单项目
把多余的东西都删掉,剩下一个HelloWord.vue
然后修改目录接口,新建一个pages目录,把HelloWord.vue放进去,components目录新建两个文件,test1.vue test2.vue。pages目录新建一个Page2.vue
那么就用这四个文件来测试一下

pages目录下:
HelloWord.vue
Page2.vue

components目录下:
test1.vue
test2.vue

修改路由router.js内容为:

import Vue from 'vue'
import Router from 'vue-router'
// 这里用到了webpack2的import()它会返回一个promise
let HelloWorld = () => import('@/pages/HelloWorld')
let Page2 = () => import('@/pages/Page2')
Vue.use(Router)
export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/page2',
      name: 'Page2',
      component: Page2
    }
  ]
})

然后改写HelloWord.vue和Page2.vue的组件引入形式,也是使用import(),
HelloWord.vue

<template>
  <div class="hello">
    <h1>HOME</h1>
    <router-link to="/page2">page2</router-link>
    <test1 :value="a">{{a}}</test1>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  components: {
    'test1': () => import('../components/test1')
  },
  data () {
    return {
      a: 'a test value.'
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}
</style>

最后是根据webpack的分块加载形式修改webpack设置
在根目录下的build/webpack.prod.confj.js
添加new webpack.optimize.CommonsChunkPlugin("common.js")

clipboard.png

然后打包就可以看到效果了。
打包后的文件:

clipboard.png

那些[number].[hash].js的文件就是页面分块后的文件了,加载页面时出了那些公共模块,会对应只加载响应页面模块。并且缓存起来。所以很大程度上优化了页面的初始加载速度。

最后Page2.vue, test1.vue, test2.vue的内容就不贴了,其实是很简单是实例来的。只是为了测试按需加载随便写的而已。

参考:
vue-router
webpack官文
示例博文


http://www.niftyadmin.cn/n/1998727.html

相关文章

oracle12c灾备,Oracle 12c PDB的数据备份恢复

今天测试了一下12c中的PDB还原恢复&#xff0c;里面还是有不少的差别。我就简单模拟了一个破坏场景&#xff0c;是在一个未打开的PDB tcymob0从中删除了数据文件usres01.dbf,然后尝试备份恢复。当然在这个操作前&#xff0c;我们使用RMAN来备份&#xff0c;使用命令backup data…

漫谈架构有感——软件架构师如何工作

软件架构师是软件行业中一种新兴职业&#xff0c;工作职责是在一个软件项目开发过程中&#xff0c;将客户的需求转换为规范的开发计划及文本&#xff0c;并制定这个项目的总体架构&#xff0c;指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技…

常见安全算法(MD5、SHA1、Base64等等)总结

本文主要对消息摘要算法和加密算法做了整理&#xff0c;包括MD5、SHA、DES、AES、RSA等&#xff0c;并且提供了相应算法的Java实现和测试。 一 消息摘要算法 1. 简介&#xff1a; 消息摘要算法的主要特征是加密过程不需要密钥&#xff0c;并且经过加密的数据无法被解密只有输入…

php可变函数匿名函数,php中的可变函数和匿名函数

可变函数一个函数的名&#xff0c;是一个变量的时候&#xff0c;就称为可变函数header("content-type:text/html;charsetutf8");function f1(){echo "这是一个可变函数";}$v "f1";$v();匿名函数匿名函数 就是没有名字的函数形式&#xff1a;$v1…

Web服务搜索与执行引擎(一)——项目提出的有关背景

在接下来的blog里&#xff0c;我将会写一系列项目总结的文章&#xff0c;里面很多内容是我们Cactus团队成员一起完成的&#xff0c;最主要的目的是把我们的想法说出来&#xff0c;跟大家探讨&#xff0c;欢迎大家提出宝贵意见。 1 项目的背景和意义1.1 Web服务出现的意义…

卡片式ViewPager,一屏展示多个pager item,设置高度不一致的tabBar

ViewPager的基本用法不必多说&#xff0c;这都很简单&#xff0c;我们可以在ViewPager中加载一个ImageView&#xff0c;也可以加载一个Fragment&#xff0c;这都是目前非常常见的用法。那么我今天说的是ViewPager中的PageTransformer属性&#xff0c;用好这个属性可以让我们的应…

oracle索引列like走索引吗,sql – Oracle查询在索引号列上使用“like”,性能不佳

在查询1上,正在执行全表扫描,即使id是索引列.查询2实现了相同的结果,但更快.如果查询1运行返回索引列,那么它将快速返回,但如果返回非索引列,或者整个行是查询需要更长时间.在查询3中,它运行速度很快,但是“代码”列是VARCHAR2(10)而不是NUMBER(12),并且与“id”相同.为什么Que…

Web服务搜索与执行引擎(二)——相关技术的介绍

在开发本项目时&#xff0c;我们使用的相关技术主要有以下几个方面。 1 Web服务的开发技术 1.1 Java平台上生成Web服务利用XFireTomcat实现JAVA平台的POJO发布为Web Service&#xff0c;Tomcat是WEB容器&#xff0c;用于处理SOAP消息中的HTTP部分,XFire是SOAP引擎&#xff0c;用…