• 技术文章 >web前端 >Vue.js

    深析Vue router-link组件实现路由导航

    藏色散人藏色散人2022-08-10 17:23:45转载437

    Vue Router

    通过 Vue.js,我们已经用组件组成了我们的应用。当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router 知道在哪里渲染它们。【相关推荐:vue.js视频教程

    Vue Router的使用

    声明式

    使用 router-link 组件进行导航,通过传递 to 来指定链接。
    <router-link> 将呈现一个带有正确 href 属性的 <a> 标签。
    官方示例:

    <script src="https://unpkg.com/vue@3"></script>
    <script src="https://unpkg.com/vue-router@4"></script>
    
    <div id="app">
      <h1>Hello App!</h1>
      <p>
        <router-link to="/">Go to Home</router-link>
        <router-link to="/about">Go to About</router-link>
      </p>
      <!-- 路由出口 -->
      <!-- 路由匹配到的组件将渲染在这里 -->
      <router-view></router-view>
    </div>

    这里没有使用常规的 a 标签,而是使用一个自定义组件 router-link 来创建链接。这使得 Vue Router 可以在不重新加载页面的情况下更改 URL,处理 URL 的生成以及编码。

    router-view
    router-view 将显示与 url 对应的组件。可以把它放在任何地方,以适应布局。

    编程式导航

    除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现。

    想要导航到不同的 URL,可以使用 router.push 方法。这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,会回到之前的 URL。

    当点击 <router-link> 时,内部会调用这个方法,所以点击 <router-link :to="..."> 相当于调用 router.push(...)

    声明式编程式
    <router-link :to="...">router.push(...)

    该方法的参数可以是一个字符串路径,或者一个描述地址的对象。

    // 字符串路径
    router.push('/users/eduardo')
    
    // 带有路径的对象
    router.push({ path: '/users/eduardo' })
    
    // 命名的路由,并加上参数,让路由建立 url
    router.push({ name: 'user', params: { username: 'eduardo' } })
    
    // 带查询参数,结果是 /register?plan=private
    router.push({ path: '/register', query: { plan: 'private' } })
    
    // 带 hash,结果是 /about#team
    router.push({ path: '/about', hash: '#team' })

    注意:如果提供了 path,params 会被忽略

    // `params` 不能与 `path` 一起使用
    router.push({ path: '/user', params: { username } }) // -> /user

    替换当前位置

    作用与router.push类似,不同的是,它在导航时不会向 history 添加新记录

    声明式编程式
    <router-link :to="..." replace>router.replace(...)

    也可以直接在传递给 router.pushrouteLocation 中增加一个属性 replace: true

    router.push({ path: '/home', replace: true })
    // 相当于
    router.replace({ path: '/home' })

    横跨历史

    该方法采用一个整数作为参数,表示在历史堆栈中前进或后退多少步,类似于window.history.go(n)

    // 向前移动一条记录
    router.go(1)
    // 相当于
    router.forward()
    
    // 返回一条记录
    router.go(-1)
    // 相当于
    router.back()
    
    // 前进 3 条记录
    router.go(3)
    
    // 如果没有那么多记录,静默失败
    router.go(-100)
    router.go(100)

    以上就是深析Vue router-link组件实现路由导航的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:csdn,如有侵犯,请联系admin@php.cn删除

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    快捷开发Web应用及小程序:点击使用

    支持亿级表,高并发,自动生成可视化后台。

    专题推荐:Vue Router
    上一篇:详解Vue渲染列表指令:v-for 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 如何使用VueRouter4.x?快速上手指南• 详解Vue-router子路由(嵌套路由)如何创建• 举例说明Vue Router路由重定向与别名设置• vue Router路由流程简单梳理(使用步骤)
    1/1

    PHP中文网