zoukankan      html  css  js  c++  java
  • vue cli3 项目优化

    vue-cli3 Prefetch (官网内容)

    <link rel="prefetch"> 是一种 resource hint,用来告诉浏览器在页面加载完成后,利用空闲时间提前获取用户未来可能会访问的内容。

    默认情况下,一个 Vue CLI 应用会为所有作为 async chunk 生成的 JavaScript 文件 (通过动态 import()按需 code splitting 的产物) 自动生成 prefetch 提示。

    这些提示会被 @vue/preload-webpack-plugin 注入,并且可以通过 chainWebpackconfig.plugin('prefetch') 进行修改和删除。

    示例:

    // vue.config.js
    module.exports = {
      chainWebpack: config => {
        config.plugins.delete('prefetch'); 
    	//config.plugins.delete('preload'); //不需要禁用
    
        // 或者
        // 修改它的选项:
        config.plugin('prefetch').tap(options => {
          options[0].fileBlacklist = options[0].fileBlacklist || []
          options[0].fileBlacklist.push(/myasyncRoute(.)+?.js$/)
          return options
        })
      }
    }
    
    • 当 prefetch 插件被禁用时,你可以通过 webpack 的内联注释手动选定要提前获取的代码区块:
    import(/* webpackPrefetch: true */ './someAsyncComponent.vue')
    

    webpack 的运行时会在父级区块被加载之后注入 prefetch 链接。

    • 路由懒加载,可能要加载的组件进行预加载,当然一些可能跳转的一些错误页面也可以进行预加载

    提示:

    Prefetch 链接将会消耗带宽。如果你的应用很大且有很多 async chunk,而用户主要使用的是对带宽较敏感的移动端,那么你可能需要关掉 prefetch 链接并手动选择要提前获取的代码区块。

    基本优化

    路由懒加载 router.js

    const HomePage = () => import(/* webpackChunkName: "HomePage", webpackPrefetch: true */ 'views/homepage/index.vue')
    routes: [
        {
          path: '*',
          name: 'HomePage',
          component: HomePage,     
        },
    

    CDN加速

    <!DOCTYPE html>
    <html lang="en" style=" height: 100%;">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0, user-scalable=0">
        <title>理财商城</title>
        <link rel="icon" href="<%= BASE_URL %>favicon.ico">
        <link rel="stylesheet" href="./reset.css ">
        <link rel="stylesheet" href="./font/font.css ">
        
        <script type="text/javascript" src="./dprFlex.js"></script>
      </head>
      <body style="position: relative;  100%; height: 100%; overflow: hidden;background:#F1F1F2">
        <div id="app"></div>
        <!-- built files will be auto injected -->
        <script type="text/javascript" src="//cdn.jsdelivr.net/npm/eruda"></script>
        
        <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
        <script src="https://cdn.bootcss.com/axios/0.19.0/axios.min.js"></script>
        <script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
        <script src="https://cdn.bootcss.com/vue-router/3.0.3/vue-router.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
        
        <script>
    
          // eruda.init();
          // var vConsole = new VConsole();
        </script>
      </body>
    </html>
    

    vue.config.js

    configureWebpack: {
        externals: {
          'vue': 'Vue',
          'vuex': 'Vuex',
          'vue-router': 'VueRouter',     
          'Axios':'axios',
          'moment': 'moment'
        }
      },
    

    min.js

    import Vue from 'vue'
    import App from './App.vue'
    
    import router from './router/index'
    import Vuex from 'vuex'
    import moment from 'moment'
    
  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/ajaemp/p/12120402.html
Copyright © 2011-2022 走看看