vue路由小案例

vue路由小案例

案例需求

  1. 创建二级路由,掌握嵌套路由
  2. 点击内容,根据不同id实现页面的跳转,掌握传参方式
  3. 利用routerlink标签封装的类,实现高亮
  4. 实现重定向,自动跳转到二级页面

案例实现

(一)路由配置

  1. 创建一级路由,用来显示导航栏以及详细信息
    创建数组,存放对象
    path:路由路径
    component:组件
javascript 复制代码
const rou=[
    {path:'/'  ,component:HeA1,
    {path:'/det/:id?',component:HeA2}
]

2.创建二级路由,在一级路由后添加children,同样指明path以及component

html 复制代码
    {path:'/',redirect:'/w1'  ,component:HeA1 ,children:[{path:"/w1",component:MoT1},{path:'/s1',component:MoT2}]},

3.添加路由

先导入createRouter、createWebHistory

再通过createRouter创建

javascript 复制代码
const r=createRouter({
    history:createWebHistory(),
    routes:rou
})

如果配置在main.js不需要导出,其它地方需要导出

javascript 复制代码
export default r

在main.js中,使用use()添加路由r

javascript 复制代码
app.use(rou)

(二)创建页面

HeAl:通过RouterLink标签创建四个导航,RouteView标签,用来展示对应路径的组件

MoT1:模拟数据,通过v-for遍历数组,将数据在页面中展现

1.在app.vue页面中,创建RouteView标签,展示对应路径的组件

根据刚才的路由配置,此时显示的是组件HeA1的内容

并通过router-link-exact-active类设置字体颜色,实现点击变色

css 复制代码
a.router-link-exact-active{
    color: brown;
}

2.通过重定向redirect,使得页面自动跳转到首页

javascript 复制代码
    {path:'/',redirect:'/w1'  ,component:HeA1 ,children:[{path:"/w1",component:MoT1},{path:'/s1',component:MoT2}]},

(三)路径传参

1.给每个商品添加点击事件@click="",通过$router.push(``)来实现参数的传递

javascript 复制代码
 @click="$router.push(`/det/${item.id}`)"

2.该路径传给的是HeA2组件,由于创建的动态路由,需要通过$route.params.id获取参数。创建computed计算属性,遍历存储的数据,若有该数据返回true,反之false。并通过v-if="计算属性",来展示页面。

3.添加返回标签,通过给botton添加$router.back(),使其能够返回页面

小结

(一)路由传参的方式及获取

  1. 查询参数:直接在路径后添加?key=123
javascript 复制代码
$router.push('/u1?key=12')

获取:$route.query.key

  1. 动态传参:在路径后添加'/参数'
    获取:$route.params.id

区别:动态获取参数的id是在配置路由时设置的(/u1/:id),参数查询的key是自己传参时命名的参数名

(二)route与router的区别

route主要用来接受参数,router用来路径的转变(back,push)

(三)RouterLink标签

该标签的本质是a标签,里面的router-link-exact-active以及router-link-active类可以设置该标签激活时的样式。其中router-link-active是模糊匹配。

相关推荐
拾忆,想起11 小时前
Dubbo延迟加载全解:从延迟暴露到延迟连接的深度优化
前端·微服务·架构·dubbo·safari
IT_陈寒11 小时前
React 18并发渲染实战:这5个性能陷阱让我浪费了整整一周!
前端·人工智能·后端
EB_Coder11 小时前
前端面试题-JavaScript高级篇
前端·javascript·面试
爱吃无爪鱼11 小时前
07-常用的前端开发组合(技术栈):配方大全
前端·vue.js·前端框架·npm·node.js·sass
cliffordl11 小时前
Web 自动化测试(Playwright)
前端·python
慧慧吖@11 小时前
前端无限列表
前端
好奇的候选人面向对象11 小时前
实现一个左右树形结构一对一关联的组件。这个方案使用两个el-tree组件,并实现它们之间的互相关联选择。
javascript·vue.js·elementui
Lovely Ruby11 小时前
前端er Go-Frame 的学习笔记:实现 to-do 功能(二)
前端·学习·golang
苏打水com11 小时前
第三篇:Day7-9 响应式布局+JS DOM进阶——实现“多端兼容+动态数据渲染”(对标职场“移动端适配”核心需求)
前端·css·html·js
一 乐11 小时前
旅游出行|基于Springboot+Vue的旅游出行管理系统设计与实现(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·旅游