解决vue单页面应用进入页面加载所有 js 的问题


Posted in Javascript onAugust 12, 2020

一般在index.js中都是这么引入的组件

import from '@/pages/my'
import Cart from '@/pages/cart'
import Order from '@/pages/order'
import TMap from '@/pages/map'
import New from '@/pages/new'

换成这样就好啦

const My = r => require.ensure([], () => r(require('@/pages/my')), 'my')
const Cart = r => require.ensure([], () => r(require('@/pages/cart')), 'cart')
const Order = r => require.ensure([], () => r(require('@/pages/order')), 'order')
const TMap = r => require.ensure([], () => r(require('@/pages/map')), 'map')
const New = r => require.ensure([], () => r(require('@/pages/new')), 'new')

补充知识:vue -- router路由跳转错误 , NavigationDuplicated

vue-router ≥3.0版本回调形式以及改成promise api的形式了,返回的是一个promise,如果路由地址跳转相同, 且没有捕获到错误,控制台始终会出现如图所示的警告 (注:3.0以下版本则不会出现以下警告!!!,因路由回调问题…)

方案一:

安装vue-router3.0以下版本:先卸载3.0以上版本然后再安装旧版本 npm install @vue-router2.8.0 -S

方案二:

针对于路由跳转相同的地址添加catch捕获一下异常:this.$router.push('/location').catch(err => { console.log(err) })

方案三:

在main.js下注册一个全局函数即可

import Router from 'vue-router'

const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}

注:官方vue-router新版本路由默认回调返回的都是promise,原先就版本的路由回调将废弃!!!!

以上这篇解决vue单页面应用进入页面加载所有 js 的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript & DHTML 实例编程(教程)DOM基础和基本API
Jun 02 Javascript
js确定对象类型方法
Mar 30 Javascript
js实现杯子倒水问题自动求解程序
Mar 25 Javascript
js实现索引图片切换效果
Nov 21 Javascript
js过滤HTML标签完整实例
Nov 26 Javascript
JavaScript学习笔记整理_关于表达式和语句
Sep 19 Javascript
jQuery 改变P标签文本值方法
Feb 24 jQuery
vue2.0安装style/css loader的方法
Mar 14 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
Oct 29 Javascript
JS实现获取当前所在周的周六、周日示例分析
May 11 Javascript
bootstrap table列和表头对不齐的解决方法
Jul 19 Javascript
vue-cli3配置favicon.ico和title的流程
Oct 27 Javascript
vue设置默认首页的操作
Aug 12 #Javascript
vue-cli打包后本地运行dist文件中的index.html操作
Aug 12 #Javascript
浅谈vue中resetFields()使用注意事项
Aug 12 #Javascript
VUE 实现element upload上传图片到阿里云
Aug 12 #Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
Aug 12 #Javascript
vue-router 2.0 跳转之router.push()用法说明
Aug 12 #Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 12 #Javascript
You might like
redis 队列操作的例子(php)
2012/04/12 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
canvas实现钟表效果
2017/02/13 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
Python 字符串换行的多种方式
2018/09/06 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
解决Django连接db遇到的问题
2019/08/29 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
罗兰·穆雷官网:Roland Mouret
2018/09/28 全球购物
中学教师暑期培训方案
2014/08/27 职场文书
财务工作失误检讨书
2015/02/19 职场文书
工会积极分子个人总结
2015/03/03 职场文书
vue-cli4.5.x快速搭建项目
2021/05/30 Vue.js