精华内容
下载资源
问答
  • vue项目优化

    2019-03-18 12:27:05
    vue项目常用优化手段 1、打包优化 提取组件的 CSS 到单独到文件 屏蔽 sourceMap 开启 gzip 压缩 公共库使用cdn外链 打包vender时不打包vue、vuex、vue-router、axios等,换用国内的 bootcdn、unpkg 直接引入到根...

    vue项目常用优化手段

    1、打包优化

    • 提取组件的 CSS 到单独到文件
    • 屏蔽 sourceMap
    • 开启 gzip 压缩
    • 公共库使用cdn外链
      • 打包vender时不打包vuevuexvue-routeraxios等,换用国内的 bootcdn、unpkg 直接引入到根目录的 index.html 中。并把上述文件配置在externals中。

    2、源码优化

    • template
      • 不要在模板里面写过多表达式
      • v-for 增加 key
      • v-showv-if 的使用
      • 善用 v-once
      • 图片资源按需加载(vue-lazyload
      • 善于运用事件代理
    • script
      • created钩子里面请求数据
      • Promise.all() 并发请求
      • 使用 Object.freeze() 来取消 Observer观察
      • 减少watch的数据,慎用 deep watch
      • 善用 web StoragesessionStorage、localStorage
    • 组件缓存(keep-alive
    • 第三方库按需加载(不用加载整个库
    • 路由组件懒加载 import()

    3、用户体验优化

    • fastclick 防止300ms延迟
    • 菊花loading
    • 骨架屏加载
    • 首屏直出
    • 服务端渲染(SSR

    4、通用前端优化

    这里参考我的另外一篇文章:前端性能优化(最全总结)

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

    展开全文
  • 1. 问题vue项目 3个页面引用了相同的一个css文件 index.d3ec8bd9.css。该3个css文件有3个页面的不同css,虽然有scoped做了限制,但是显然不符合我们的预期,我们希望不同的页面引入不同的css文件。2. 原因经过仔细...

    8b0f3faef54d979bfdde374a26cfe331.gif

    1. 问题

    vue项目 3个页面引用了相同的一个css文件 index.d3ec8bd9.css。

    该3个css文件有3个页面的不同css,虽然有scoped做了限制,但是显然不符合我们的预期,我们希望不同的页面引入不同的css文件。

    2. 原因

    经过仔细排查,发现只有这三个项目的css存在该问题,那么应该不是项目配置的问题;

    最后发现是页面路由配置的问题,龙舟项目的路由是如下配置

    routes: [            {                path: '/',                name: 'index',                component: () => import(/* webpackChunkName: "index" */'./modules/index'),            },            {                path: '/rule',                name: 'rule',                component: () => import(/* webpackChunkName: "rule" */'./modules/rule'),            },            {                path: '/ranking',                name: 'ranking',                component: () => import(/* webpackChunkName: "ranking" */'./modules/ranking'),            },        ]

    而后两个是复制的 第一个的项目路由,代码如下

    routes: [            {                path: '/',                name: 'index',                component: () => import(/* webpackChunkName: "index" */'./modules/index'),            },        ],

    发现异步加载的页面 webpackChunkName 都为 index,所以最后 会把 3个页面的 css 都提取到 index 开头的css文件中

    3. 解决方案

    a) 放弃使用异步加载,因为不确定项目中是否有其他人使用了相同的webpackChunkName

    routes: [{        path: '/',        name: 'index',        component: index,    }

    b) 使用与页面相关的 webpackChunkName

    routes: [{        path: '/trace',        name: 'trace',        component: () => import(/* webpackChunkName: "2019-ncov-more" */'./pages/trace'),    }

    推荐 首页不使用异步加载,其他页使用异步加载

    routes: [{        path: '/',        name: 'index',        component: index,    }, {        path: '/trace',        name: 'trace',        component: () => import(/* webpackChunkName: "2019-ncov-more" */'./pages/trace'),    }

    关注「前端的神奇小屋」

    做有情怀的前端人

    4c5b30dd998b3c4ec8eba39924664fa5.gif

    好文章,我在看❤️

    展开全文
  • 浅谈Vue项目优化心得

    2019-11-06 18:38:52
    1、打包优化 ... 打包vender时不打包vue、vuex、vue-router、axios等,换用国内的 bootcdn、unpkg 直接引入到根目录的 index.html 中。并把上述文件配置在externals中。 vue.config.js const Gzip =...

     

    1、打包优化

    • 提取组件的 CSS 到单独到文件
    • 屏蔽 sourceMap
    • 开启 gzip 压缩
    • 公共库使用cdn外链
      • 打包vender时不打包vuevuexvue-routeraxios等,换用国内的 bootcdn、unpkg 直接引入到根目录的 index.html 中。并把上述文件配置在externals中。

    vue.config.js

    const Gzip = require("compression-webpack-plugin");
    const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
    const isProduction = process.env.NODE_ENV === 'production';
    // vue.config.js
    module.exports = {
    	transpileDependencies: [
    		//'vue-echarts',
    		'resize-detector'
    	],
        devServer: {
    		disableHostCheck: true,
    	},
    	publicPath:'/',
    	productionSourceMap:false,
    	configureWebpack:config =>{
    		//打包时过滤
    		if (isProduction) {
    			config.externals = {
    				'vue': 'Vue',
    				'vue-router': 'VueRouter',
    			}
    		}
    		if(isProduction){
        		return {
        			plugins:[
        				new Gzip({
    						test:/\.js$|\.html$|\.css/,
    						threshold:102400,
    						deleteOriginalAssets: false
    					}),
    					new UglifyJsPlugin({
    						uglifyOptions: {
    							compress: {
    								//warnings: false,
    								drop_debugger: true,//关闭debug
    								drop_console: true
    							}
    						},
    						sourceMap: true,//报错信息
    						cache: true,
    						parallel: true
    					})
    				]
    			}
    		}
    	}
    }

    index.html

        <!-- built files will be auto injected -->
      <link href="https://cdn.bootcss.com/animate.css/3.7.2/animate.min.css" rel="stylesheet">
      <!-- CND -->
      <script src="https://cdn.bootcss.com/vue/2.6.10/vue.runtime.min.js"></script>
      <script src="https://cdn.bootcss.com/vue-router/3.0.6/vue-router.min.js"></script>

    2、源码优化

    • template
      • 不要在模板里面写过多表达式
      • v-for 增加 key
      • v-showv-if 的使用
      • 善用 v-once
      • 图片资源按需加载(vue-lazyload
      • 善于运用事件代理
    • script
      • created钩子里面请求数据
      • Promise.all() 并发请求
      • 使用 Object.freeze() 来取消 Observer观察
      • 减少watch的数据,慎用 deep watch
      • 善用 web StoragesessionStorage、localStorage
    • 组件缓存(keep-alive
    • 第三方库按需加载(不用加载整个库
    • 路由组件懒加载 import()

    router.js 路由懒加载

    {
    			path: '/home',
    			name: 'home',
    			meta: {check: false},
    			component: resolve=> require.ensure([],()=>resolve(require('../views/home/home')),'home')
    		},
    		{
    			path: '/pc/index',
    			name: 'pcIndex',
    			meta: {check: false},
    			component: resolve=> require.ensure([],()=>resolve(require('../views/pc/index')),'index')
    		},

    UI按需引用

    import {
        LocaleProvider, Icon, Modal, Button, Radio, Avatar, BackTop, Menu, Pagination, DatePicker, Form, Input, InputNumber,
        Select, Upload, Card, Table, Tabs, Progress, Drawer, message, popconfirm, spin,Collapse,Timeline
    } from 'ant-design-vue';
    import layout from "ant-design-vue/lib/layout"
    Vue.use(layout);
    
    Vue.use(Collapse);//不能单独在需要的页面引用
    Vue.use(Timeline);//不能单独在需要的页面引用
    Vue.use(LocaleProvider);
    Vue.use(Icon);
    Vue.use(Modal);
    Vue.use(Button);
    Vue.use(Radio);
    Vue.use(Avatar);
    Vue.use(BackTop);
    Vue.use(Menu);
    Vue.use(Pagination);
    Vue.use(DatePicker);
    Vue.use(Form);
    Vue.use(Input);
    Vue.use(InputNumber);
    Vue.use(Select);
    Vue.use(Upload);
    Vue.use(Card);
    Vue.use(Table);
    Vue.use(Tabs);
    Vue.use(popconfirm);
    Vue.use(Drawer);
    Vue.use(Progress);
    //需要的页面才引用
     import {Row, Col} from 'ant-design-vue';
     components: {
                ARow: Row,
                ACol: Col,
            },

    3、用户体验优化

    • fastclick 防止300ms延迟
    • loading
    • 骨架屏加载
    • 服务端渲染(SSR
    npm install fastclick -S
    //main.js中全局引入,并绑定到body,全局生效。或者在单页面引入,只针对当前页面生效
    
    //引入
    import FastClick from 'fastclick'
    //初始化FastClick实例。在页面的DOM文档加载完成后
    FastClick.attach(document.body)
    

     

    展开全文
  • vue项目中添加看板娘

    千次阅读 热门讨论 2020-03-06 13:57:01
    在个人网站中如何加入好看的看板娘组件 效果如下: 首先下载live2dw组件,...接下来将live2dw导入到vue项目的static目录下 如上图所示 在public文件夹下的index.html中添加 <script type="text/javascrip...

    在个人网站中如何加入好看的看板娘组件

    效果如下:
    在这里插入图片描述
    在这里插入图片描述

    • 首先下载live2dw组件,地址:链接:https://pan.baidu.com/s/1K1hixvM9_2ySMV674KQDtQ 提取码:rs8g
    • 接下来将live2dw导入到vue项目的static目录下
      在这里插入图片描述
      如上图所示
    • 在public文件夹下的index.html中添加
    <script type="text/javascript" src="/static/live2dw/lib/L2Dwidget.min.js"></script>
    
    
    • 接下来在App.vue中添加如下:
    <script>
    export default {
        created() {
            setTimeout(() => {
                window.L2Dwidget.init({
                    pluginRootPath: 'static/live2dw/',
                    pluginJsPath: 'lib/',
                   
                    pluginModelPath: 'live2d-widget-model-haru_2/assets/',
                    tagMode: false,
                    debug: false,
                    model: { jsonPath: 'static/live2dw/live2d-widget-model-haru_2/assets/haru02.model.json' },
                    display: { position: 'right', width: 150, height: 300 },
                    mobile: { show: true },
                    log: false
                })
            }, 1000)
        },
    }
    </script>
    
    
    • 以上就是如何给自己的vue项目添加看板娘
    • 最后说明一下如何更换人物,如图所示:
      在这里插入图片描述
    展开全文
  • 一、下载nginx 使用的版本是:nginx-1.19.4....提取码:t3fe 二、连接服务器(本人使用:SecureCRT) 1、创建nginx目录:mkdir nginx 2、cd nginx 3、配置nginx安装所需的环境 yum install gcc-c++...
  • vue项目 dev正常 build发生错误

    千次阅读 2019-03-13 17:45:00
    提取错误信息: 这个文件有错误,检查并修改即可 经过排除检查错误地方如下:多了个逗号 转载于:https://www.cnblogs.com/GarsonZhang/p/10524758.html
  • 因为公司项目需要的场景不同,所以IP地址也是需要运维人员修改,因此特意提出来。 ./static 新建config.js let setting = { base_url = "http://192.168.6.520:8080" } 复制代码在index.html中引入 <script src=...
  • 如果能把这些库文件提取出来,就能减少打包体积,加快编译速度。本文主要讲述在 vue-cli3 中利用 DllPlugin 来进行预编译。 1、安装相关插件 yarn add webpack-cli@^3.2.3 add-asset-html-webpack-plugin@^3.1.3 ...
  • 1. CSS在开发模式中用import,在打包后用CDN  min.js中做如下操作 if (process.env.NODE_ENV == 'development') {  require('../xxx.css'); } ... index.html中引入相应UI的...#2.1 提取js到外部,减小vendor.j...
  • 将index.html中的远程js和css设置为可配置的动态加载 之前:index.html中写死了js与css的路径,每次打包都要修改index.html文件或者用...现在:通过Promise实现了异步加载js的方法,将js和css从index.html提取...
  • 1、打包文件中的app.js文件放入cdn,加快页面首次加载速度2、提取公共方法,减少js代码量3、提取公共组件,将统计分析的售前和售后,客户分配,客户管理,客服管理等页面的搜索条件模块化,减少了html代码量,减少了...
  • 什么是vue-loader 这是我入职第三天的故事,在写这篇文章之前,先来看看咱们今天...vue-loader 会解析文件,提取每个语言块,如有必要会通过其它 loader 处理(比如[removed]默认用babel-loader处理,<style>默认
  • vue单页面应用项目优化总结

    千次阅读 2018-08-21 15:08:07
    这是之前在公司oa项目优化时罗列的优化点,基本都已经完成,当时花了点心思整理的,保存在这里,方便以后其他项目用到查漏补缺。 1、打包文件中的app.js文件放入cdn,加快页面首次加载速度  2、提取公共方法,减少...
  • 以引入element为例,复制图中代码然后粘贴在index.html(body上面,如果有vue的话需在在vue下面,有的需要注意版本,最好通过官方推荐的,不然容易挂),index.html中哪些需要通过cdn加载就引入哪些 通过cdn中优化...
  • 请教一下各位大神,我刚接触vue+element-ui几天,最近自己写了一个模糊查询的input框,现在需要作为项目公共的部分,可以被需要的html引用。 自己的想法是写一个公共的js,哪个html要就引用就行了,但是会有这样的...
  • 01 商品列表0101 路由配置和数据请求0102 上拉加载更多02 商品详情0201 详情数据请求和展示0202 轮播图组件提取0203 商品详情(路由的本质理解)01 商品列表0101 路由配置和数据请求{title:'商品展示',className:'...
  • 一、需要升级vue-cli的,请参照官网 ...1、使用vue create创建项目之后,我们看到项目里没有像vue-cli2的配置文件,目录如下: 2、在根目录创建vue.config.js文件,相关配置参数可参考: https://cli.vuejs....
  • .html页面引入vue并使用公共组件

    万次阅读 热门讨论 2019-09-10 14:26:59
    整体项目采用传统 .html 文件搭建,vue仅作为渲染数据工具使用,需要使用的地方使用 <script> 标签引入。 现有数个页面,每个页面都包含相同 header 和 footer ,希望可以把 header 和 footer 提取出来,避免...
  • 1、先用Visual Studio 2019创建一个Vue.js Web应用程序,如果你不会建的话 参考:https://mp.csdn.net/console/editor/html/104596108 2、提取其中的.sln和.njsproj 将.njsproj放置在已有项目根目录,将.sln...
  • vue中使用看板娘

    2020-08-16 20:49:04
    2.接下来将live2dw导入到vue项目的static目录下 3.在index.html中添加<script type="text/javascript" src="/static/live2dw/lib/L2Dwidget.min.js"></script> 4.在App.vue中添加如下代码: <script...
  • Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 开放调试需要安装Vue devtools插件 下载ok 链接:https://pan.baidu.com/s/11rkNMiTUtqNITBI2bPxPcA 提取码:NIHA 打开浏览器→...
  • 如果搭建大型项目或者比较复杂的企业级软件是需要用vue-cli,webpack进行打包开发的。 鸭鸭作为一个初学者,选择了导入vue.js的方法在html里进行学习 首先下载一个 vue.js 链接:...
  • vue学习之hello world

    2019-09-01 22:10:30
    首先下载vue.js文件,然后引入到自己的html文件中或者项目中。 可以在这里下载:链接: https://pan.baidu.com/s/16_TKXF--ls0CB_1YKzRvUg 提取码: ws8s <html> <head> <meta charset="UTF-8"> ...
  • 11.解析.vue文件

    万次阅读 2018-02-06 01:09:01
    还记得前9章我们说过,可以把template写在外面的那一部分知识么?...但解析这种.vue结尾的文件也不是一份轻松的工作,你需要安装以下这些插件到你的项目中,它们分别是 : (把es6语法转换成es5,
  • 前半部分讲解vue.js基础知识,后半部分实战一个项目,共8个章节,带源码。 下载地址:https://pan.baidu.com/s/1Ou7rV6i2HHOe-Yuk-_jEdg 提取码: v5je   Vue.js 高仿饿了么外卖App 下载地址:htt...
  • 效果图如下所示 Installation npm i vue-ueditor-wrap 下载 UEditor ...将下载的压缩包解压并重命名为 UEditor,放入你项目的 static 目录下,如果你使用的是 vue-cli 3.x,可以把 UEditor 文件夹放入.
  • **webpack4.0中引入app.vue出现报错** 我正在学vue.js实战,但是这本书事两年前写的,书中的vue配置有些已经不能用了, 我在配置完webpack.config.js后创建了个app.vue,然后就报错了,百度过...**vue项目结构:**

空空如也

空空如也

1 2 3 4
收藏数 65
精华内容 26
关键字:

vue项目提取html

vue 订阅