vue-金沙1005

vue-router的两种模式区别以及使用注意事项vuerouter是vue官方的路由管理器。它和vue.js的核心深度集成,让构建单页面应用变得易如反掌。vue-router 默认hash模式,还有一种是history模式。hash模式hash模式的工作原理是hashchange事件,可以在window监听hash的变化。我们在url后面随便添加一个#xx触发这个事件。window.onhashchange=f…

是vue官方的路由管理器。它和 vue.js 的核心深度集成,让构建单页面应用变得易如反掌。vue-router 默认 hash 模式,还有一种是history模式。

hash模式的工作原理是hashchange事件,可以在window监听hash的变化。我们在url后面随便添加一个#xx触发这个事件。

  window.onhashchange = function(event){
    console.log(event);
  }
vue-router的两种模式区别以及使用注意事项

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

打印出来的结果如下:

vue-router的两种模式区别以及使用注意事项

可以看到里边有两个属性newurl和oldurl。可以通过模拟改变hsh的值,动态页面数据。

vue-router的两种模式区别以及使用注意事项

尽管浏览器没有请求服务器,但是页面状态和url已经关联起来了,这就是所谓的前端路由,单页应用的标配。

把window.history对象打印出来可以看到里边提供的方法和记录长度

vue-router的两种模式区别以及使用注意事项

前进,后退,跳转操作方法:

  history.go(-3);//后退3次
  history.go(2);//前进2次
  history.go(0);//刷新当前页面
  history.back(); //后退
  history.forward(); //前进

html5新增的api
 a)history.pushstate(data, title [, url]):往历史记录堆栈顶部添加一条记录; data会在onpopstate事件触发时作为
   参数传递过去;title为页面标题,当前所有浏览器都会 忽略此参数;url为页面地址,可选,缺省为当前页地址;
 b)history.replacestate(data, title [, url]) :更改当前的历史记录,参数同上; 
 c)history.state:用于存储以上方法的data数据,不同浏览器的读写权限不一样;
 d)window.onpopstate:响应pushstate或replacestate的调用;有了这几个新的api,针对支持的浏览器,
 我们可以构建用户体验更好的应用了。就像刚提到的facebook相册,虽然是ajax的方式,但用户可以直接复 制页面地址分享给好友,

如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushstate api 来完成 url 跳转而无须重新加载页面。

const router = new vuerouter({
  mode: 'history',
  routes: [...]
})

当你使用 history 模式时,url 就像正常的 url,例如 http://www.yongcun.wang/tclass,也好看!

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

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

给个警告,因为这么做以后,你的服务器就不再返回 404 错误页面,因为对于所有路径都会返回 index.html 文件。为了避免这种情况,你应该在 vue 应用里面覆盖所有的路由情况,然后在给出一个 404 页面。

const router = new vuerouter({
  mode: 'history',
  routes: [
    { path: '*', component: notfoundcomponent }
  ]
})

参考:

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/119054.html

(0)

相关推荐

  • 在vue中如何使用addeventlistener添加事件、removeeventlistener移除事件[通俗易懂]在vue中如何使用addeventlistener添加事件、removeeventlistener移除事件最近在项目中需要用到addeventlistener监听滚动条滚动的高度,所以就研究了一下在vue中是怎么进行事件监听的。添加事件给要添加事件的元素加上ref属性在mounted中添加事件mounted(){this.$refs.box.addeventlistener(‘scroll’,()=>{console.log(‘scroll’,th

  • vue使用echarts在vue中使用echarts1.先创建一个vue项目2.在项目路径下执行以下命令3.在main.js文件中引入echarts4.在页面中使用

  • 使用命令创建vue项目_vuecli3创建项目创建项目1.vueinitwebpack项目名字2.3.安装依赖4.启动项目

  • vue开发与调试工具vue-devtools扩展chrome插件插件链接:https://pan.baidu.com/s/1ghqedqkweklhjrhjlg6v2g?pwd=jl5g提取码:jl5gchrome浏览器>更多程序>拓展程序点击加载已解压程序按钮,选择vue-devtools>shells>chrome放入,安装成功如下图vue-devtools使用vue项目,打开f12,选择vue就可以使用了.vue是数据驱动的,这样就能看到对应数据了,方便我们进.

    2022年10月22日
  • vue最好用的富文本图片处理_vue懒加载main.js:importvuelazyloadfrom’vue-lazyload’;vue.use(vuelazyload,{error:’dist/error.png’,loading:’dist/loading.gif’});组件内使用:

  • vue 绑定使用 touchstart touchmove touchendvue简单绑定touchstarttouchmovetouchend

    2022年11月27日
  • vue对于ntko的应用经验本来生活过的美滋滋,突然告知要用ntko写一个操作word文档的界面,看到后立马提起兴致看了下ntko的基本文档,安装ntko,研究小demo。研究完后心里立刻妈卖批了,这个ntko居然限制游览器与word版本,可把我研究苦了。chrome45后就限制了插件入口,firfox跟chrome差不多,所以只能用一些特定的进行开发。1.开发环境选择使用的是ie11,word2016(qq游览器与…

    2022年12月16日
  • 8个vue前端ui框架框架值得你掌握「建议收藏」element(start-28128)饿了么前端推出的基于vue.js2.0的后台组件库,它能够帮助你更轻松更快速地开发web项目iview(start-15674)iview一套基于vue.js的高质量ui组件库,友好的api,自由灵活地使用空间,细致、漂亮的ui。由talkingdata开发维护,有很多知名互联网企业都在使用vuetify(start-11449)一个为vuejs2.0打造的material风格的组件库,喜欢m.

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图