Vue框架中的路由

1. 环境搭建——脚手架

npm init vue@latest => 选择添pinia和router => 进入项目文件夹 => npm i => npm run dev

2. 注册路由

router/index.js中的routes下写路由,例如:其中views文件夹中放路由对应页面的文件

    {
      // 路由名
      path: "/playLists",
      // 懒加载组件
      component: () => import("../views/playLists/index.vue"),
    },

3. 页面跳转

3.1 声明式导航跳转标签

使用:<router-link to="/car">购物车</router-link>

与a标签区别:a标签会重新请求网络(浏览器功能);router-link标签只是跳转,不会发起网络请求(底层是a标签,但阻止了a标签的默认事件),使用a标签名来设置css样式

当需要访问其他网站时,用a标签;如果访问的还是当前服务器上的页面,就用router-link标签

3.2 编程式导航跳转

主页面引入:import { useRouter } from 'vue-router'  使用:router.push('/路由');

跳转页面引入:import { useRoute } from 'vue-router'

3.3 跳转页面时传参

a. query传参 => router.push({ name: 路由名/ path:路由名 , query: { 传的参数 } })                                                  或 通过?拼接来传参 router.push('/路由名?key=value');  //

                     目标页获取 => useRoute().query.参数的属性名

b. 动态路由传参 => router.push({ name: 'login', params: { 传的参数 } });

        注:注册路由:path:'/网址:变量名' 必须注册路由的name 

               目标页面获取参数 => useRoute().params.参数的属性名

注:vue框架中,两种传参方式都可以在网址中看见

4. 路由嵌套——子路由

实现切换效果(CSS、v-if/v-for、动态组件component、子路由)

写在父路由里面,作为children属性的值,例如:

{
  path: "/shopdetail",
  // 路由名
  name: "shopdetail",
  component: () => import("../views/shopdetail/index.vue"),
  children: [
    {
       path: "/shopdetail/shop1",
       name: "shop1",
       component: () => import("../views/shopdetail/views/shop1.vue"),
    },
    {
       path: "/shopdetail/shop2",
       name: "shop2",
       component: () => import("../views/shopdetail/views/shop2.vue"),
    },
  ],
},

5. 重定向——redirect

当用户输入某个路由时,重新更改路由地址.。例如:

// 重定向 用户输入/shopdetail时,将路由改成/shopdetail/shop1
redirect: "/shopdetail/shop1",

6. 路由守卫(健全)

6.1 前置路由守卫

router.beforeEach((to,from,next)=>{ })

        to:要去哪个页面

        from:从哪个页面来

        next:让不让去

6.2 后置路由守卫——已匹配到路由

router.afterEach((to, from) => { })

函数内部可以操作浏览器的API,例如:上一个组件已将浏览器滚动条滑到下面,切换组件后应该将浏览器body标签滚动条滚到最上方。

6.3 独享守卫

beforeEnter: (to, from, next) => { }

只守卫一个网址 beforeEnter,写在路由内部,用法和beforeEach一样

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值