解决VUE前端首页加载缓慢,app.js文件过大的问题

本文介绍了一种针对前端项目的性能优化方案,包括删除不必要的依赖、进行JS/CSS压缩(如利用Webpack和Nginx)以及使用CDN加速。通过这三种方式可以显著提升网站加载速度。

文章以Jeecg前端为例,其他框架略过步骤1即可

经过分析及资料查询,解决此问题有三个路径可走:    

目录

1.删除不需要的依赖

2.进行jscss压缩(1.打包时压缩 2.nginx压缩)

        2.1打包时压缩

         2.2nginx压缩(官网推荐)

3.使用cdn加速


1.删除不需要的依赖

 分析发现的在线表单占用较大,考虑到实际场景中基本不使用,删除相关依赖。需要修改3个文件

 util.js

 main.js

package.json

 然后删除node_modules, yarn重新install,再build,效果立竿见影!

2.进行jscss压缩(1.打包时压缩 2.nginx压缩)

        2.1打包时压缩

         打包的时候通过webpack配置生成对应的 .gz 文件,浏览器请求xx.js/css等文件时,服务器返回对应的xxx.js.gz文件;浏览器请求xx.js文件时,服务器对xx.js文件进行gzip压缩后传输给浏览器。

webpack打包生成gz文件
安装插件(compression-webpack-plugin):

npm install compression-webpack-plugin --save-dev

vue.config.js文件进行webpack配置(没有此文件可以在项目根路径创建一个文件):

const CompressionPlugin = require('compression-webpack-plugin');
module.exports = {
        plugins: [
            new CompressionPlugin({
                algorithm: 'gzip', // 使用gzip压缩
                test: /\.js$|\.html$|\.css$/, // 匹配文件名
                filename: '[path].gz[query]', // 压缩后的文件名(保持原文件名,后缀加.gz)
                minRatio: 1, // 压缩率小于1才会压缩
                threshold: 10240, // 对超过10k的数据压缩
                deleteOriginalAssets: false, // 是否删除未压缩的源文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false(比如删除打包后的gz后还可以加载到原始资源文件)
            }),
        ],
    },
};

这里对js、html、css文件进行了压缩处理,并没有进行图片压缩,因为图片压缩并不能实际减少文件大小,反而会导致打包后生成很多同大小的gz文件,得不偿失。

当然了,上文提到过,浏览器请求xx.js/css等文件时,服务器返回对应的xxx.js.gz文件,所以还需要在服务器配置一个属性,以期望它能正常返回我们需要的gz文件。

这里拿nginx举例(nginx.conf文件):

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip_static on;

    server {
        listen       8462;
        server_name  localhost;

        location / {
            root   dist;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}


其中gzip_static on这个属性是静态加载本地的gz文件。

         2.2nginx压缩

         JeecgBoot 官网推荐前端项目 nginx 部署的时候加上 gzip 压缩,加速第一次访问       

        具体参考网址:http://pro.ant.design/docs/deploy-cn#%E4%BD%BF%E7%94%A8-nginx

        nginx 开始 gzip 压缩配置如下:

server {
    listen 80;
    # gzip config
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    root /usr/share/nginx/html;

    location / {
        # 用于配合 browserHistory使用
        try_files $uri $uri/ /index.html;

        # 如果有资源,建议使用 https + http2,配合按需加载可以获得更好的体验
        # rewrite ^/(.*)$ https://preview.pro.ant.design/$1 permanent;

    }
    location /api {
        proxy_pass https://preview.pro.ant.design;
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
    }
}

3.使用cdn加速

        1.在package.json文件,scripts-build添加--report,yarn build结束后,在dist中会多出一个report.html文件。

        2.打开report.html文件,包含文件分析图。色块的大小代表js文件的大小,最大的两个js文件,里面都是一些第三方依赖包,将一些比较大的依赖包提取出来就可以减少chunk-vendors的大小。

        3.在vue.config.js中,使用externals来防止这些依赖包被打包。

        tips:externals的值是个对象,其中的key是第三方依赖库的名称,同package.json文件中的dependencies对象的key一样。其中的value值可以是字符串、数组、对象(value值应该是第三方依赖编译打包后生成的js文件,然后js文件执行后赋值给window的全局变量名称)。

config.set('externals', {
      vue: 'Vue',
      'vue-router': 'VueRouter',
      axios: 'axios',
      'ant-design-vue': 'antd',
      "moment": "moment",
      'vuex': 'Vuex',
      'jsoneditor': 'JSONEditor',
      'echarts': 'echarts'
    })

        4.找到一个开源的cdn加速服务(这里用到的是bootcdn

        index.html文件中引入cdn的js和css文件

tips:vue.config.js中,externals配置了,才可以引入cdn,且引入cdn的版本一定要和package-lock.json中模块的版本号一致,否则会报错,如果没有package-lock.json,则按照package.json文件中的来

  <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/vue-router/3.1.6/vue-router.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.18.1/axios.min.js"></script>
  <link href="https://cdn.bootcdn.net/ajax/libs/ant-design-vue/1.7.2/antd.min.css" rel="stylesheet">
  <script src="https://cdn.bootcdn.net/ajax/libs/ant-design-vue/1.7.2/antd.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.29.1/locale/zh-cn.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/vuex/3.1.2/vuex.min.js"></script>
  <script src="https://cdn.bootcdn.net/ajax/libs/jsoneditor/9.0.0/jsoneditor.min.js"></script>
  <link href="https://cdn.bootcdn.net/ajax/libs/jsoneditor/9.0.0/jsoneditor.min.css" rel="stylesheet">
  <script src="https://cdn.bootcdn.net/ajax/libs/echarts/4.9.0-rc.1/echarts.min.js"></script>

tips:引入cdn也有可能会出现以下报错
1.Cannot read property 'catch' of undefined
检查一下引入cdn的版本与本地的版本是否一致,不一致就会导致这个错误
2.Cannot read property 'default' of undefined
这个报错跟引入cdn的顺序有关,引入的cdn,vue必须是放在第一位,moment.js必须放在ant-design-vue的前面

:8081/#/stu:1 Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.Understand this errorAI :8081/#/stu:1 Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.Understand this errorAI :8081/#/stu:1 Uncaught (in promise) Error: Could not establish connection. Receiving end does not exist.Understand this errorAI content.js-c1c147bd.js:1 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'exception') at content.js-c1c147bd.js:1:42224 (anonymous) @ content.js-c1c147bd.js:1Understand this errorAI main.js:26 [Vue warn]: Property or method "handleOpen" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties. found in ---> <IndexCom> at src/components/index.vue <App> at src/App.vue <Root> warn @ vue.runtime.esm.js:4482 warnNonPresent_1 @ vue.runtime.esm.js:5082 get @ vue.runtime.esm.js:5115 render @ index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/index.vue?vue&type=template&id=47323bf2&scoped=true:44 Vue._render @ vue.runtime.esm.js:2649 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6737 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 eval @ main.js:26 ./src/main.js @ app.js:597 __webpack_require__ @ app.js:646 (anonymous) @ app.js:1797 __webpack_require__.O @ app.js:696 (anonymous) @ app.js:1798 (anonymous) @ app.js:1800Understand this errorAI main.js:26 [Vue warn]: Property or method "handleClose" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties. found in ---> <IndexCom> at src/components/index.vue <App> at src/App.vue <Root> warn @ vue.runtime.esm.js:4482 warnNonPresent_1 @ vue.runtime.esm.js:5082 get @ vue.runtime.esm.js:5115 render @ index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/index.vue?vue&type=template&id=47323bf2&scoped=true:45 Vue._render @ vue.runtime.esm.js:2649 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6737 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 eval @ main.js:26 ./src/main.js @ app.js:597 __webpack_require__ @ app.js:646 (anonymous) @ app.js:1797 __webpack_require__.O @ app.js:696 (anonymous) @ app.js:1798 (anonymous) @ app.js:1800Understand this errorAI main.js:26 [Vue warn]: Invalid handler for event "open": got undefined found in ---> <ElMenu> at packages/menu/src/menu.vue <ElAside> at packages/aside/src/main.vue <ElContainer> at packages/container/src/main.vue... (1 recursive calls) <IndexCom> at src/components/index.vue <App> at src/App.vue <Root> warn @ vue.runtime.esm.js:4482 updateListeners @ vue.runtime.esm.js:1859 updateComponentListeners @ vue.runtime.esm.js:3541 initEvents @ vue.runtime.esm.js:3520 Vue._init @ vue.runtime.esm.js:5443 VueComponent @ vue.runtime.esm.js:5576 createComponentInstanceForVnode @ vue.runtime.esm.js:4422 init @ vue.runtime.esm.js:4276 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6737 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 eval @ main.js:26 ./src/main.js @ app.js:597 __webpack_require__ @ app.js:646 (anonymous) @ app.js:1797 __webpack_require__.O @ app.js:696 (anonymous) @ app.js:1798 (anonymous) @ app.js:1800Understand this errorAI main.js:26 [Vue warn]: Invalid handler for event "close": got undefined found in ---> <ElMenu> at packages/menu/src/menu.vue <ElAside> at packages/aside/src/main.vue <ElContainer> at packages/container/src/main.vue... (1 recursive calls) <IndexCom> at src/components/index.vue <App> at src/App.vue <Root> warn @ vue.runtime.esm.js:4482 updateListeners @ vue.runtime.esm.js:1859 updateComponentListeners @ vue.runtime.esm.js:3541 initEvents @ vue.runtime.esm.js:3520 Vue._init @ vue.runtime.esm.js:5443 VueComponent @ vue.runtime.esm.js:5576 createComponentInstanceForVnode @ vue.runtime.esm.js:4422 init @ vue.runtime.esm.js:4276 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6737 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 eval @ main.js:26 ./src/main.js @ app.js:597 __webpack_require__ @ app.js:646 (anonymous) @ app.js:1797 __webpack_require__.O @ app.js:696 (anonymous) @ app.js:1798 (anonymous) @ app.js:1800Understand this errorAI main.js:26 [Vue warn]: Error in created hook: "TypeError: this.stuList is not a function" found in ---> <StudentList> at src/components/studentList.vue <ElMain> at packages/main/src/main.vue <ElContainer> at packages/container/src/main.vue... (1 recursive calls) <IndexCom> at src/components/index.vue <App> at src/App.vue <Root> warn @ vue.runtime.esm.js:4482 logError @ vue.runtime.esm.js:2985 globalHandleError @ vue.runtime.esm.js:2981 handleError @ vue.runtime.esm.js:2949 invokeWithErrorHandling @ vue.runtime.esm.js:2965 callHook$1 @ vue.runtime.esm.js:3929 Vue._init @ vue.runtime.esm.js:5449 VueComponent @ vue.runtime.esm.js:5576 createComponentInstanceForVnode @ vue.runtime.esm.js:4422 init @ vue.runtime.esm.js:4276 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6737 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 eval @ main.js:26 ./src/main.js @ app.js:597 __webpack_require__ @ app.js:646 (anonymous) @ app.js:1797 __webpack_require__.O @ app.js:696 (anonymous) @ app.js:1798 (anonymous) @ app.js:1800Understand this errorAI main.js:26 TypeError: this.stuList is not a function at VueComponent.created (index.js??clonedRuleSet-40.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/studentList.vue?vue&type=script&lang=js:6:10) at invokeWithErrorHandling (vue.runtime.esm.js:2957:57) at callHook$1 (vue.runtime.esm.js:3929:7) at Vue._init (vue.runtime.esm.js:5449:5) at new VueComponent (vue.runtime.esm.js:5576:12) at createComponentInstanceForVnode (vue.runtime.esm.js:4422:10) at init (vue.runtime.esm.js:4276:45) at merged (vue.runtime.esm.js:4439:5) at createComponent (vue.runtime.esm.js:6264:9) at createElm (vue.runtime.esm.js:6226:9) logError @ vue.runtime.esm.js:2989 globalHandleError @ vue.runtime.esm.js:2981 handleError @ vue.runtime.esm.js:2949 invokeWithErrorHandling @ vue.runtime.esm.js:2965 callHook$1 @ vue.runtime.esm.js:3929 Vue._init @ vue.runtime.esm.js:5449 VueComponent @ vue.runtime.esm.js:5576 createComponentInstanceForVnode @ vue.runtime.esm.js:4422 init @ vue.runtime.esm.js:4276 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6737 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 eval @ main.js:26 ./src/main.js @ app.js:597 __webpack_require__ @ app.js:646 (anonymous) @ app.js:1797 __webpack_require__.O @ app.js:696 (anonymous) @ app.js:1798 (anonymous) @ app.js:1800Understand this errorAI main.js:26 [Violation] Added non-passive event listener to a scroll-blocking 'mousewheel' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952 mousewheel @ element-ui.common.js:1140 bind @ element-ui.common.js:1140 callHook @ vue.runtime.esm.js:6892 _update @ vue.runtime.esm.js:6812 updateDirectives @ vue.runtime.esm.js:6796 invokeCreateHooks @ vue.runtime.esm.js:6349 createElm @ vue.runtime.esm.js:6245 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 merged @ vue.runtime.esm.js:4439 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 createChildren @ vue.runtime.esm.js:6335 createElm @ vue.runtime.esm.js:6243 patch @ vue.runtime.esm.js:6706 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 init @ vue.runtime.esm.js:4277 createComponent @ vue.runtime.esm.js:6264 createElm @ vue.runtime.esm.js:6226 patch @ vue.runtime.esm.js:6737 Vue._update @ vue.runtime.esm.js:3669 updateComponent @ vue.runtime.esm.js:3769 Watcher.get @ vue.runtime.esm.js:3363 Watcher @ vue.runtime.esm.js:3353 mountComponent @ vue.runtime.esm.js:3790 Vue.$mount @ vue.runtime.esm.js:8323 eval @ main.js:26 ./src/main.js @ app.js:597 __webpack_require__ @ app.js:646 (anonymous) @ app.js:1797 __webpack_require__.O @ app.js:696 (anonymous) @ app.js:1798 (anonymous) @ app.js:1800 main.js:26 [Intervention] Slow network is detected. See https://www.chromestatus.com/feature/5636954674692096 for more details. Fallback font will be used while loading: http://localhost:8081/fonts/element-icons.ff18efd1.woff vue.runtime.esm.js:8334 Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools
最新发布
10-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值