如何去除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 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
JavaScript实现的简单烟花特效代码
Oct 20 Javascript
深入理解JS addLoadEvent函数
May 20 Javascript
分享一道关于闭包、bind和this的面试题
Feb 20 Javascript
深入对Vue.js $watch方法的理解
Mar 20 Javascript
JavaScript中双向数据绑定详解
May 03 Javascript
JS中Attr的用法详解
Oct 09 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
Jul 26 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
介绍一下28个JS常用数组方法
May 06 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时间戳与日期的转换
2013/06/06 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
关于COOKIE个数与大小的问题
2011/01/17 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
2019/09/17 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
python实现bitmap数据结构详解
2014/02/17 Python
用python删除java文件头上版权信息的方法
2014/07/31 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
pandas重新生成索引的方法
2018/11/06 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
如何学习Python time模块
2020/06/03 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
季度思想汇报
2014/01/01 职场文书
小学清明节活动总结
2014/07/04 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL