为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题

为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题,可以通过以下步骤实现:

  1. 在路由配置中使用Webpack提供的代码分割功能,将各个路由对应的组件打包为单独的js文件,实现懒加载。具体代码示例:
const Foo = () => import('./Foo.vue')
const Bar = () => import('./Bar.vue')

export default new Router({
  routes: [
    { path: '/foo', component: Foo },
    { path: '/bar', component: Bar }
  ]
})
  1. 在路由切换时,展示一个全局的loading组件,以提示用户系统正在加载。

具体实现方法:

在App.vue文件中添加以下代码:

<template>
  <div id="app">
    <loading v-if="loading"></loading>
    <router-view :key="key"></router-view>
  </div>
</template>

<script>
import Loading from './components/Loading.vue'
export default {
  components: {
    Loading
  },
  data () {
    return {
      loading: true,
      key: 0
    }
  },
  watch: {
    $route (to, from) {
      this.loading = true
      this.key++
    }
  },
  mounted () {
    this.loading = false
  }
}
</script>

其中,loading为是否显示loading组件的状态,key为路由切换时,为router-view动态绑定一个key,以达到强制重新渲染的目的。监听$route的变化,每次路由切换时开启loading状态,并改变key的值,以更新router-view的内容。mounted函数中,将loading状态设置为false,表示路由切换完成。

  1. 在打包过程中,将各个页面组件的js文件名添加hash值,实现浏览器缓存文件版本的更新。具体代码示例:

webpack.prod.config.js

output: {
  path: path.resolve(__dirname, '../dist'),
  filename: '[name].[chunkhash].js',
  chunkFilename: '[id].[chunkhash].js'
}

通过上述方法,在vue-router懒加载时下载js的过程中添加loading提示,可以有效避免无响应问题,并且在网站更新时用户可以及时获取到最新版本的组件文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 在android中将string转换为int

    以下是关于“在Android中将String转换为int”的完整攻略,包含两个示例。 在Android中将String转换为int 在Android开发中,我们经常需要将String类型的数据转换为int类型。以下是关于如何在Android中将String转换为int的详细攻略。 1. 使用Integer.parseInt()方法 在Android中,我们可…

    other 2023年5月9日
    00
  • iOS组件化开发实战记录

    iOS组件化开发实战记录攻略 1. 什么是组件化开发 组件化开发是一种将复杂的iOS应用拆分成多个独立的组件,每个组件都具有独立的功能和界面,可以独立开发、测试和维护的开发模式。通过组件化开发,可以提高代码的复用性、降低耦合度,同时也方便团队协作和项目的扩展。 2. 组件化开发的优势 代码复用性:组件化开发可以将常用的功能模块抽取成独立的组件,可以在不同的项…

    other 2023年7月27日
    00
  • 如何使用正则表达式验证用户名?

    如何使用正则表达式验证用户名攻略 在Web开发中,我们经常需要验证用户输入的用户名是否符合规范。正则表达式是一种强大的工具,可以用于验证用户名是否合特定的格式。本攻略将介绍如何使用正则表式验证用户名,并提供两个示例。 正则表达式 则表达式是一种用于匹配字符串的模式。它由一些特殊字符和普通字符组成,可以用于验证字符串是否符特定的格式。以下是一些常用的正则表达式…

    other 2023年5月9日
    00
  • mybatis-plus之如何实现in嵌套sql

    MyBatis-Plus实现IN嵌套SQL攻略 MyBatis-Plus是一个基于MyBatis的增强工具,提供了更便捷的操作数据库的方式。在MyBatis-Plus中,可以使用嵌套SQL来实现复杂的查询操作,包括IN嵌套SQL。下面是详细的攻略,包含两个示例说明。 示例1:使用IN嵌套SQL查询 假设我们有两个实体类:User和Role,它们之间是多对多的…

    other 2023年7月28日
    00
  • android实现单选按钮功能

    当使用Android开发时,可以使用RadioButton(单选按钮)来实现单选功能。下面是实现单选按钮功能的完整攻略: 在XML布局文件中添加RadioButton组件: <RadioGroup android:id=\"@+id/radioGroup\" android:layout_width=\"wrap_cont…

    other 2023年8月24日
    00
  • Java四种权限修饰符知识点详解

    Java四种权限修饰符知识点详解 在Java语言中,有四种权限修饰符,分别为public、protected、default和private。这四种修饰符分别控制类、变量、方法等成员的访问权限。以下是对Java四种权限修饰符的详细解释。 1. public public是最开放的权限修饰符。如果一个类、方法或者变量被修饰为public,那么它就可以被任何其他…

    other 2023年6月26日
    00
  • js里面的变量范围分享

    JavaScript变量的作用域 在JavaScript中,变量的作用域决定了它在代码中的可见性和可访问性。了解变量的作用域对于编写可维护和可扩展的代码非常重要。JavaScript中有三种类型的作用域:全局作用域、函数作用域和块级作用域。 全局作用域 全局作用域是在整个JavaScript代码中都可访问的作用域。在全局作用域中声明的变量可以在代码的任何地方…

    other 2023年7月29日
    00
  • textcontent、innertext的用法 在文档中插入纯文本

    textContent、innerText的用法 在文档中插入纯文本 在JavaScript中,有两个常用的属性可以用来修改页面元素的文本内容,它们分别是 textContent 和 innerText。本文将介绍它们的用法,并以实例演示如何向文档中插入纯文本。 textContent textContent 属性返回或设置指定元素中的文本内容,包括所有后代…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部