如何去除vue项目中的#及其ie9兼容性


Posted in Javascript onJanuary 11, 2018

一、如何去除vue项目中访问地址的#

vue2中在路由配置中添加mode(vue-cli创建的项目在src/router/index.js)

export default new Router({
 mode: 'history',
 routes: [
  {
   path: '/',
   name: 'menu',
   component: menu,
   children: [
    {
     path: 'organization',
     component: organization,
     children: [
      {
       path: '',
       redirect: 'organizationSub'
      },
      {
       path: 'organizationSub',
       component: organizationSub
      }
     ]
    },
    {
     path: 'user',
     component: user
    },
    {
     path: 'role',
     component: role
    }
   ]
  }
 ]
})

二、vue路由原理

2.1  hash模式:vue-router默认的路由模式。

vue开发的单页面应用,html只有一个,切换时url的变化通过url的hash模式模拟完整的url。

2.2  history模式:vue2中配置 mode: 'history'。

利用history.pushState API完成url的跳转

HTML5 History 模式官网介绍:https://router.vuejs.org/zh-cn/essentials/history-mode.html

三、注意事项

不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了。

所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

vue-router官网中有介绍,也有后台配置样例:https://router.vuejs.org/zh-cn/essentials/history-mode.html

四、兼容性

经过测试,mode: 'history'在ie9下不生效,若vue项目需要兼容ie9,且后台对访问地址有严格校验,不建议使用此种模式。若是内容有错误或遗漏,欢迎大家批评指正~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
学习ExtJS fit布局使用说明
Oct 08 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
Dec 14 Javascript
javascript实现获取cookie过期时间的变通方法
Aug 14 Javascript
详解javascript跨浏览器事件处理程序
Mar 27 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
Feb 13 Javascript
纯JS单页面赛车游戏制作代码分享
Mar 03 Javascript
Vue.js对象转换实例
Jun 07 Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
Json实现传值到后台代码实例
Jun 30 Javascript
JS JQuery获取data-*属性值方法解析
Sep 01 jQuery
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
全新打包工具parcel零配置vue开发脚手架
Jan 11 #Javascript
详解VUE2.X过滤器的使用方法
Jan 11 #Javascript
Vuex提升学习篇
Jan 11 #Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 #Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 #Javascript
angular2中Http请求原理与用法详解
Jan 11 #Javascript
基于node下的http小爬虫的示例代码
Jan 11 #Javascript
You might like
php多文件上传功能实现原理及代码
2013/04/18 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
javascript 写类方式之八
2009/07/05 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
你必须知道的Javascript知识点之"单线程事件驱动"的使用
2013/04/23 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
JAVA和C++的区别
2013/10/06 面试题
mysql有关权限的表都有哪几个
2015/04/22 面试题
抗洪救灾标语
2014/10/08 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
五年级数学教学反思
2016/02/16 职场文书
详解Flask开发技巧之异常处理
2021/06/15 Python
Ajax实现三级联动效果
2021/10/05 Javascript