如何去除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 相关文章推荐
Firefox中autocomplete="off" 设置不起作用Bug的解决方法
Mar 25 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
每天一篇javascript学习小结(Function对象)
Nov 16 Javascript
用js动态添加html元素,以及属性的简单实例
Jul 19 Javascript
深入分析javascript中console命令
Aug 14 Javascript
JS实现页面跳转参数不丢失的方法
Nov 28 Javascript
Bootstrap 模态框(Modal)插件代码解析
Dec 21 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 Javascript
微信小程序中用WebStorm使用LESS
Mar 08 Javascript
vue.js实现插入数值与表达式的方法分析
Jul 06 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
Jan 20 Javascript
vue 中 beforeRouteEnter 死循环的问题
Apr 23 Javascript
全新打包工具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中filter_input函数用法分析
2014/11/15 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
jquery 选择器部分整理
2009/10/28 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
python多线程方式执行多个bat代码
2016/06/07 Python
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
Python类和对象的定义与实际应用案例分析
2018/12/27 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
Python bytes string相互转换过程解析
2020/03/05 Python
大学生职业生涯规划书模板
2014/01/03 职场文书
实习单位证明范例
2014/11/17 职场文书
公司给客户的感谢信
2015/01/23 职场文书
《花钟》教学反思
2016/02/17 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL