欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 【Vue Router】学习(超详细)

【Vue Router】学习(超详细)

2025/9/27 2:08:45 来源:https://blog.csdn.net/weixin_44899940/article/details/127248670  浏览:    关键词:【Vue Router】学习(超详细)

Vue Router

      • router-link
          • 1,to(必选参数):类型string/location
          • 2,tag :类型string
          • 3,replace:类型boolean/默认false
          • 4,active-class:类型string/默认"router-link-active" (或者全局 linkActiveClass)
          • aria-current-value:类型'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false' (string)/默认page
          • 5,custom:类型boolean/默认false
          • 6,exact-active-class:类型string/默认值:"router-link-exact-active" (或者全局 linkExactActiveClass)
          • 7,v-slot
          • 8,router-link和a标签两者区别
      • router-view
          • name 类型:string
          • route
      • 路由对象的两个属性,mode(模式),base(基路径)
      • 常见问题
          • 如何让路由选中时候,具有选中效果,并且解决路由为/时候的默认选中

router-link

支持用户在具有路由功能的应用中点击导航

1,to(必选参数):类型string/location

表示目标路由的链接,当被点击后,内部会立刻把 to 的值传到 router.push()

<!-- 类似于渲染结果 -->
<a href="/home">Home</a>
<!-- 字符串 -->
<router-link to="/home">Home</router-link>
<!-- 使用 v-bind 的 JS 表达式 -->
<router-link :to="'/home'">Home</router-link>
<!-- 同上 -->
<router-link :to="{ path: '/home' }">Home</router-link>
<!-- 命名的路由 -->
<router-link :to="{ name: 'user', params: { userId: '123' }}">User</router-link>
<!-- 带查询参数,下面的结果为 `/register?plan=private` -->
<router-link :to="{ path: '/register', query: { plan: 'private' }}">Register
</router-link>
2,tag :类型string

有时候想要 渲染成某种标签。 可以使用 tag prop 类指定何种标签,同样它还是会监听点击

  例如,这个就是变为li标签<router-link to="/ve_index" tag="li">案例介绍</router-link>
3,replace:类型boolean/默认false

设置 replace 属性的话,当点击时,会调用 router.replace(),而不是 router.push(),所以导航后不会留下历史记录。

<router-link to="/abc" replace></router-link>
4,active-class:类型string/默认"router-link-active" (或者全局 linkActiveClass)

链接激活时,应用于渲染的 的 class,就是当前链接被激活的样式

aria-current-value:类型’page’ | ‘step’ | ‘location’ | ‘date’ | ‘time’ | ‘true’ | ‘false’ (string)/默认page

当链接激活时,传递给属性 aria-current 的值。

5,custom:类型boolean/默认false

是否应该将其内容包裹在 a标签 元素中

<router-link to="/home" custom v-slot="{ navigate, href, route }"><a :href="href" @click="navigate">{{ route.fullPath }}</a>
</router-link>
渲染为:
<a href="/home">/home</a>
6,exact-active-class:类型string/默认值:“router-link-exact-active” (或者全局 linkExactActiveClass)

链接精准激活时,应用于渲染的 a 的 class。

7,v-slot

记得把 custom 配置传递给 router-link>,以防止它将内容包裹在 a标签 元素内。

8,router-link和a标签两者区别
: history模式时,router-link会守卫单击事件,让浏览器不再重新加载页面
history模式时,使用base选项后,所有的to属性都不需要写 基路径

router-view

name 类型:string

如果 设置了 name,则会渲染对应的路由配置中 components 下的相应组件

route

一个路由地址的所有组件都已被解析(如果所有组件都被懒加载),因此可以显示。

路由对象的两个属性,mode(模式),base(基路径)

mode(模式)
vue-router默认是hash模式,使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会进行重新加载,url地址为(http://www.***.com/#/home)
另一种模式就是history模式,而history模式是利用h5 history.pushState API 来完成 URL 跳转,无须重新加载页面,http://www.***.com/home)
base(基路径)
默认是“/”,当设置基路径的时候,访问http://localhost:8080/和访问http://localhost:8080/home是一样的

常见问题

如何让路由选中时候,具有选中效果,并且解决路由为/时候的默认选中
  • exact添加强制匹配属性
  • 或者在路由js下,LinkExactActiveClass:‘active’
<li class="nav-item navtxt"><router-link to="/" active-class="active" exact>首页</router-link>
</li>
<li class="nav-item navtxt"><router-link to="/about" active-class="active">租赁信息</router-link>
</li>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词