vue项目在Internet Explorer浏览器中,唯独有一个路由无法正常跳转

vue项目遇到一个很怪异的问题,很困扰,在Internet Explorer浏览器中(IE11及以下),唯独有一个路由无法正常跳转,其他都正常,路由代码如下:

  {
    path: '/school',
    name: 'school',
    component: reslove => require(['@/views/school/'], reslove)
  },
  {
    path: '/personal',
    name: 'personal',
    component: reslove => require(['@/views/personal/'], reslove)
  },

出问题的就是这个personal,报错信息如下:
Failed to resolve async component default: SyntaxError: strict 模式下不允许一个属性有多个定义
图片描述

第一点击报错跳转不过去,连续第二次点击页面会离开当前页面但是获取不到personal对应的页面内容,如果是新开页签访问路由就完全是空白了,试过将personal换成别的名称也不行,奇怪的是将指向的模板文件改成别的比如school也能跳转了,但也不是其他所有模板都行。。不知道和es6编译有没有关系

阅读 5.9k
4 个回答

图片描述

由于ie11及以下不支持es6中的Symbol,所以浏览器认为你同一个属性多次声明了,js严格模式下是不允许重复声明的

IE的话一般需要将ES6转ES5。下面转换方法:
需要安装babel-polyfill

npm install --save babel-polyfill
然后在main.js引入该插件

clipboard.png

最后需要在webpack配置入口即可 app: ['babel-polyfill', './src/main.js']

clipboard.png

最后,重启一下项目

npm run dev

应该将 view/personal/下的模板代码贴出来

猜测里面同一变量定义了多次

看这个文件里是不是有问题 @/views/personal/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题