为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日

相关文章

  • Linux find常用用法示例

    Linux find常用用法示例 find命令是Linux中常用的一种查找文件的命令,可以通过文件名、文件类型、文件大小、用户和组等多种方式来查找文件。接下来将介绍find命令的常用用法,以及一些具体的例子。 命令格式 find命令的基本格式为: find [起始目录] [参数] [匹配表达式] 其中,起始目录表示查找的起始路径,如果不指定则默认从当前目录开…

    其他 2023年3月28日
    00
  • 学习javascript文件加载优化

    学习JavaScript文件加载优化 JavaScript 是一种客户端语言,能够实现动态交互效果,并且被广泛使用在网页中。然而,一旦我们引入较多的 JavaScript 文件,网页性能就会受到影响,这时我们就需要学习 JavaScript 文件加载优化的技巧。 优化加载过程 在进行 JavaScript 文件加载优化之前,我们需要先了解浏览器在加载 Jav…

    other 2023年6月25日
    00
  • java8–list转set

    在Java 8中,我们可以使用Stream API来将List转换为Set。以下是Java 8中将List转换为Set的详细攻略: 步骤1:创建List 首先我们需要创建List对象。我们可以使用ArrayList或LinkedList等Java集合类来创建List对象。以下是一个示例: List<String> list = new Array…

    other 2023年5月9日
    00
  • Win10 20H1快速预览版18950怎么手动更新升级?

    当你想手动更新升级你的Win10 20H1快速预览版18950版本时,可以使用Windows Update(Windows更新)来升级系统。下面提供如下两个步骤来手动更新升级Win10 20H1快速预览版18950版本: 步骤一:检查系统是否已经有可用的更新 在升级之前,你需要检查你的系统是否已经有可用的更新。在开始手动更新之前需要预先备份你的系统数据以便于…

    other 2023年6月27日
    00
  • 浅谈PHP变量作用域以及地址引用问题

    浅谈PHP变量作用域以及地址引用问题 1. 变量作用域 在PHP中,变量的作用域决定了变量在程序中的可见性和访问范围。PHP中有四种变量作用域:全局作用域、局部作用域、静态作用域和超全局作用域。 1.1 全局作用域 全局作用域中定义的变量可以在整个程序中访问。在函数内部可以使用global关键字来引用全局变量。 示例代码: $globalVar = 10; …

    other 2023年7月29日
    00
  • Win10重置后出现inaccessible boot device提示 Win10进系统无限重启解决办法

    Win10重置后出现inaccessible boot device提示 如果您在重置Windows 10操作系统后发现出现了“Inaccessible Boot Device”提示,这可能是由于系统某些关键文件已经损坏或丢失导致的。不用担心,下面是一些解决方法。 方法1:使用“自动修复” 启动Windows 10,并进入“高级选项”页面。 选择“故障排除”…

    other 2023年6月27日
    00
  • jps不是内部或外部命令 亲测有用

    jps不是内部或外部命令 亲测有用 在使用Java开发时,经常需要查看Java进程的信息,这时就要用到jps命令。但是,有的同学在使用jps时会出现“’jps’ 不是内部或外部命令、可执行的程序或批处理文件”这样的错误提示。这是怎么回事呢? 问题分析 很多同学在安装JDK时,只安装了JRE,而没有安装JDK的bin目录,jps命令就不能使用了。因为jps命令…

    其他 2023年3月29日
    00
  • BeanPostProcessor在显示调用初始化方法前修改bean详解

    BeanPostProcessor是Spring框架中一个非常重要的扩展点,它能够在bean初始化前后对bean做一些自定义的处理。其中,在bean初始化之前修改bean的场景非常常见,可以通过实现BeanPostProcessor接口中的方法来实现。 BeanPostProcessor介绍 BeanPostProcessor接口有两个方法:postProc…

    other 2023年6月20日
    00
合作推广
合作推广
分享本页
返回顶部