解决vue单页⾯应⽤进⼊页⾯加载所有js的问题
⼀般在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 => sure([], () => r(require('@/pages/my')), 'my')
const Cart = r => sure([], () => r(require('@/pages/cart')), 'cart')
const Order = r => sure([], () => r(require('@/pages/order')), 'order')
const TMap = r => sure([], () => r(require('@/pages/map')), 'map')
const New = r => sure([], () => 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)
注册页面js特效}
注:官⽅vue-router新版本路由默认回调返回的都是promise,原先就版本的路由回调将废弃
以上这篇解决vue单页⾯应⽤进⼊页⾯加载所有 js 的问题就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论