vue2vue3中你知道什么是路由元信息,路由元信息配置。切换页面跳转路由更换title。

它有什么用


从下面的另一个官方栗子里已经给出了答案.


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

  if (to.matched.some(record => record.meta.requiresAuth)) {

    //对matched不了解的建议看官方api文档,或我7.1节的说明

    //数组some方法,如果meta.requiresAuth为ture,则返回true.此时,说明进入该路由前需要判断用户是否已经登录 

    if (!auth.loggedIn()) {   //如果没登录,则跳转到登录页

      next({

        path: '/login',

        query: { redirect: to.fullPath }  //官方例子的这个小细节很好,通过query将要跳转的路由路径保存下来,待完成登录后,就可以直接获取该路径,直接跳转到登录前要去的路由

      })

    } else {

      next()

    }

  } else {

    next() // 确保一定要调用 next()

  }

})

我们可以通过在meta里设置的状态,来判断是否需要进行登录验证.如果meta里的requiresAuth为true,则需要判断是否已经登录,没登录就跳转到登录页.如果已登录则继续跳转.

此时,有人可能会说,前面说的path,params,query都可以存储信息,作为登录验证的状态标记.的确,它们也可以达到同样的效果.如果是少量单个的验证,使用它们问题不大. 但如果是多个路由都需要进行登录验证呢?path,params,query是把信息显性地存储在url上的.并且多个路径都把一个相同的状态信息加在url上.这样就使url不再单纯,并且也很不优雅美观. 所以要优雅要隐性地传递信息,就使用meta对象吧!

2、怎么切换页面换title呢?(vue3)


import {

  createRouter,

  createWebHashHistory

} from 'vue-router'



import homeModel from '../views/homeModel/route'

const routes = [

  {

    path: '/myOrder',

    name: 'myOrder',

    component: () => import('../components/order/myOrder.vue'),

    meta: {

      title: '我的订单',

      intercept: true,

    }

  },

  {

    path: '/myRoll',

    name: 'myRoll',

    component: () => import('../components/roll/myRoll.vue'),

    meta: {

      title: '我的礼券',

      intercept: true,

    }

  }

]



const router = createRouter({

  history: createWebHashHistory(),

  routes

})



router.beforeEach((to, go) => {

  // 从本地存储中取出token

  let token = localStorage.getItem('token')

  if (token && token != 'null') { // 证明有用户  

    return true //本地存储有token 用户可以进入页面

  } else {

    if (to.meta.intercept) { // to.meta.intercept  为true 说名要拦截这个页面

      return {

        path: '/login',

        // query: {

        //   ...to.query

        // }

      } // return相当于vue2 的next

    } else { // 否则就可以进去这个页面

      return true

    }



  }

})





// 切换页面换title 全局的前置守卫

router.afterEach((to, next) => {

  //获取 document.querySelector title = 直接改掉 这么简单

  document.querySelector('title').innerText = to.meta.title

})



export default router

码字不易-s-z-h

基础学习:

前端最基础的就是 HTML , CSS 和 JavaScript 。

网页设计:HTML和CSS基础知识的学习

HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。

CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

景图片、边框等。所有这些用来改变内容外观的东西称之为表现。

[外链图片转存中…(img-Jkl62cr2-1718561241923)]

动态交互:JavaScript基础的学习

JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3路由信息是一种可以添加在路由配置的额外信息。它可以用来存储一些与路由有关的信息,例如页面title、权限要求、页面访问方式等。 路由信息Vue3的路由扮演着非常重要的角色。它可以帮助我们更好地控制和管理路由,实现更精确的路由管理。 首先,路由信息可以用来设置页面title。在一些需要动态修页面title的场景下,我们可以在路由配置添加对应的信息,然后通过路由导航守卫在切换路由时修页面title,从而实现动态修页面title的效果。 其次,路由信息还可以用来实现页面的权限控制。我们可以设置某个路由需要的权限要求,然后在路由导航守卫进行权限判断,如果当前用户没有权限访问该路由,则可以进行相应的处理,例如跳转到登录页面或显示无权限提示。 此外,路由信息还可以用来设置页面的访问方式。比如,我们可以为某个路由设置访问方式为只能通过特定渠道(如微信公众号、APP等)进行访问,通过在路由配置添加相应的信息,并在全局路由导航守卫进行判断,来限制页面的访问渠道。 综上所述,Vue3的路由信息路由管理发挥着非常重要的作用。它可以帮助我们实现动态修页面title、权限控制和访问方式的管理,提升了路由的控制灵活性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值