路由编程式导航
想要导航到不同的 URL,则使用 router.push 方法。
这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL。
声明式 编程式
<router-link :to="..."> router.push(...)
// 字符串
router.push('home')
// 对象
router.push({ path: 'home' })
// 命名的路由
router.push({ name: 'user', params: { userId: 123 }})
// 带查询参数,变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})
router.replace(location)
跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。
router.go这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n)。
// 在浏览器记录中前进一步,等同于 history.forward()
router.go(1)
// 后退一步记录,等同于 history.back()
router.go(-1)
// 前进 3 步记录
router.go(3)
// 如果 history 记录不够用,那就默默地失败呗
router.go(-100)
router.go(100)
一个视图使用一个组件渲染,因此对于同个路由,多个视图就需要多个组件
每个钩子方法接收三个参数:
当一个导航触发时,全局的 before 钩子按照创建顺序调用。钩子是异步解析执行,此时导航在所有钩子 resolve 完之前一直处于等待中。
to: Route: 即将要进入的目标 路由对象
from: Route: 当前导航正要离开的路由
next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。
next(false): 中断当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。
next('/') 或者 next({ path: '/' }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。
确保要调用 next 方法,否则钩子就不会被 resolved。
同样可以注册一个全局的 after 钩子,不过它不像 before 钩子那样,after 钩子没有 next 方法,不能改变导航:
for (var i = 0; i < bankcard.length; i++) {
if (i <= 4) {
bankcard = bankcard.slice(0, 5)
} else if (i > 5) {
bankcard = bankcard.slice(0, 5)
bankcards = bankcard.slice(5)
}
bankcard = bankcard.concat(bankcards)
}
上一篇: 创建蓝色导航菜单 蓝色导航栏提高用户兴趣
下一篇: 安卓应用程序移除顶部蓝色导航栏(操作栏)
推荐阅读
-
未阻止 Uniapp 小程序路由拦截器、导航器
-
Vue 路由器导航防护:避免多重执行的陷阱和解决方案
-
pc 项目,通过左侧导航树显示右侧路由器
-
修复 Vue 路由器路由保护(导航保护)的一篇文章
-
路由编程式导航
-
超详细的导航栏绑定内容锚点 Vue 实现 + 滚动动画 + vue-路由器(可用哈希模式)
-
Vu3+Element-Plus 根据路由配置生成菜单导航栏
-
第 15 节:VueRouter4.x 路由器链接/路由器视图 v-slot 的用法、动态添加和删除路由、路由导航防护
-
Vue(路由器、导航卫士、插槽槽)--第三次修补周边时,把之前做过的场景拿出来,看看哪些地方可以优化,哪些地方可以做得更好。
-
Vue2+3 入门】(15) VUE 路由 入门 声明式导航 基本用法和详细代码示例