工作中常见问题
app开发时候常见页面跳转问题,
移动端开发时候,从A页面到B页面,然后到C页面,在C页面填写完表单之后,需要跳转到A页面的时候,无论是用路由跳转的push()方法,还是replace()方法,在A页面返回首页或者上一层页面的时候,路由会回到C页面。因为这个时候的浏览器的历史记录一直会存在C页面或者B页面的历史记录的
处理措施
目前的处理方法是使用beforeRouteEnter(),在b页面中使用
> beforeRouteEnter (to, from, next) {
> if (from.name === 'A页面路由名称') {
> next()
> } else if (from.name === 'C页面路由名称') {
> next(vm => {
> vm.$router.go(-1)
> // 通过 `vm` 访问组件实例
> })
> }
> }
to – 即将要跳转到的页面
form – 跳转前的页面
next – 下一步,若无指定跳转的路由,设置为空 next() 即可
注意:这个部分有个地方需要注意,在beforeRouteEnter函数内部,是不能使用this的,因为这个时候组件尚未被创建出来,所以要使用next的vm方法访问组件的实列,然后调用返回上一层页面的方法,这时候就实现了需求。这个时候的vm其实就是相当于this。