解决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中对对层的控制
Dec 29 Javascript
javascript闭包的理解和实例
Aug 12 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
jQuery设置div一直在页面顶部显示的方法
Oct 24 Javascript
在Node.js应用中使用Redis的方法简介
Jun 24 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
浅谈React + Webpack 构建打包优化
Jan 23 Javascript
node中使用es6/7/8(支持性与性能)
Mar 28 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
Jul 22 Javascript
iview form清除校验状态的实现
Sep 19 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 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
DISCUZ 分页代码
2007/01/02 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
Python中获取对象信息的方法
2015/04/27 Python
对python中的pop函数和append函数详解
2018/05/04 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
QML使用Python的函数过程解析
2019/09/26 Python
Python常用库大全及简要说明
2020/01/17 Python
python 连续不等式语法糖实例
2020/04/15 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
连锁酒店店长职责范本
2014/02/13 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
创业计划书之闲置物品置换中心
2019/12/25 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
MySQL日期时间函数知识汇总
2022/03/17 MySQL
解决redis批量删除key值的问题
2022/03/23 Redis
原生JS实现分页
2022/04/19 Javascript