vue优化

作者: ouxuwen | 来源:发表于2019-05-23 17:26 被阅读0次

移动端点击事件300ms延迟

建议使用 fastclisk 插件,在 webpack 入口文件 main.js 中如下配置:

const FastClick = require('fastclick');

document.addEventListener('DOMContentLoaded', function () {

FastClick.attach(document.body);

}, false);

异步加载组件

打包构建应用时,Javascript 包会变得非常大,影响页面加载。为了提高效率,可以把不同路由对应的组件分割成不同的代码块,当路由被访问的时候才加载对应组件。

可以通过 Vue 的 异步组件 和 Webpack 的 code splitting feature 实现:

import Vue from  'vue';

import VueRouter from  'vue-router';

Vue.use(VueRouter);

const router = new VueRouter({

routes: [

{

path: '/XXX1',

component: resolve => require(['./routers/XXX1.vue'], resolve) /* <== 主要代码是这 */

},

{

path: '/XXX2',

component: resolve => require(['./routers/XXX2.vue'], resolve) /* <== 主要代码是这 */

}

]

});

import App from  './app.vue';

const app = new Vue({

router,

render: v => v(App)

}).$mount('#app');

页面切换加载中提示

当用户网络较慢时,异步加载组件需要一定时间,此时显示加载中动画相对比较友好。 可以通过 vue-routervuex 轻松实现:

首先通过 vuex 定义一个状态(isLoading):

import Vue from  'vue';

import Vuex from  'vuex';

const store = new Vuex.Store({

state: {

isLoading: false

},

mutations: {

updateLoadingStatus(state, isLoading) {

state.isLoading = isLoading;

}

}

});

const app = new Vue({

store,

router,

render: v => v(App)

}).$mount('#app');

其次通过 vue-router 的 beforeEach 和 afterEach 更改 isLoading 状态:

router.beforeEach((route, redirect, next) => {

/* 显示加载中动画 */

store.commit('updateLoadingStatus', true);

next();

});

router.afterEach(route => {

/* 隐藏加载中动画 */

store.commit('updateLoadingStatus', false);

});

最后在 App.vue 里通过 isLoading 显示/隐藏加载中动画即可:

<template>

   <div style="height: 100%;"><!-- 特别注意:若页面结构使用 yd-layout 组件时,这里需加上 height: 100%; -->

        <div v-show="isLoading">加载中</div>

        <router-view v-show="!isLoading"></router-view>

    </div>

</template>

<script type="text/babel">

export  default {

   computed: {

       isLoading() {

          return  this.$store.state.isLoading

   }

}

}

</script>

相关文章

  • vue项目优化

    vue 项目优化 项目打包体积优化 通常vue项目通过webpack打包后,会出现vendor包的体积过大的情况,...

  • Vue - Table表格渲染

    Vue - Table表格渲染上千数据优化 Vue - Table表格渲染上千数据优化 8 个月前 · 来自专栏 ...

  • vue.config.js配置

    vue cli3.x创建的项目vue本身已经做了些优化,如果想在这个优化之上在进行优化的话我们需要在项目的根目录新...

  • vue 性能优化点

    vue项目中,经常会遇到一些性能优化点,以下就是我在工作中,总结的优化点 vue 性能优化点 1,路由懒加载 2,...

  • Vue 网站首页加载优化

    Vue 网站首页加载优化 本篇主要讲解 Vue项目打包后 vendor.js 文件很大 如何对它进行优化 以及开启...

  • 博客网站首页加载优化

    Vue 网站首页加载优化 本篇主要讲解 Vue项目打包后 vendor.js 文件很大 如何对它进行优化 以及开启...

  • Nginx开启Gzip优化网页访问速度

    前言 开启Nginx Gzip 优化网页加载速度不限于Vue项目,所有前端皆可开启gzip优化如果是Vue项目可以...

  • 用js在html实现一个简单的时钟

    用vue实现并优化时间格式

  • 一次webpack优化

    一、背景: 技术栈:ant-design-vue、vue、vuex、vue-router最开始的优化手段只有bab...

  • 2019-05-10

    vue 组件按需引用,vue-router懒加载,vue打包优化,加载动画 当打包构建应用时,Javascript...

网友评论

    本文标题:vue优化

    本文链接:https://www.haomeiwen.com/subject/yfvbzqtx.html