[Vue]路径跳转和路由高级设置

发布于:2025-05-23 ⋅ 阅读:(17) ⋅ 点赞:(0)

        路由基础使用看另一篇文章:路由基础使用和路径传参

基本属性

path: '/', //主路径,也就是路由路径
alias: ['/myfarie'], //路径别名,即访问该路径时,也会访问到该资源
name:'farie' //设置名字,占位符传参时需要使用
component:()=> import('../views/index.vue'), //绑定页面资源

children:[{...},{...}] //子页面,后面会讲

redirect:'/xxx' //重定向用,后面讲

        补充说明:

alias设置别名传的是一个数组,也就是可以设置多个别名。

注意path设置路由路径,后面再讲到这里都会使用这个称呼。

router-link页面跳转

        固定传参

        在不需要传参以及目标页面资源的路由路径不会经常变动时,我们可以使用属性 to:

<template>
  <h1>我是主页</h1>
  <br>
  <h1>跳转按钮:</h1>
  <router-link to="/farie?num=666">跳转farie</router-link>
  <br>
  <router-view></router-view>
  <br>
  <footer>我是主页尾部</footer>
</template>

        在这里,每次跳转传递的都是固定的路径信息,浏览器拿到的就是to属性对应的字符串。

        动态参数

        在需要传参时,我们可以使用:to实现动态绑定。

<template>
  <h1>我是主页</h1>
  <h1>跳转按钮:</h1>
  <router-link :to="{path:'/farie',query:{num:666}}">跳转farie</router-link>
  <br>
  <router-view></router-view>
  <footer>我是主页尾部</footer>
</template>

        这样还不够,我们还可以搭配script块中的数据使用:

<script setup>
import {ref} from "vue";

const fariepath = ref({
  farie:'/farie',
  fquery:{
    num:666
  }
})
</script>

<template>
  <h1>我是主页</h1>
  <h1>跳转按钮:</h1>
  <router-link :to="{path:fariepath.farie,query:fariepath.fquery}">跳转farie</router-link>
  <br>
  <router-view></router-view>
  <footer>我是主页尾部</footer>
</template>

        占位符传参

        之前配置路由信息时提过一个属性name,在我们占位符动态传参时会使用,就是在这里:

<template>
  <h1>我是主页</h1>
  <h1>跳转按钮:</h1>
  <router-link :to="{name:'flower',params:{uid:220013025}}">跳转flower</router-link>
  <br>
  <router-view></router-view>
  <footer>我是主页尾部</footer>
</template>

        在占位符传参时,我们参数使用的不是query而是params。同时,如果使用path,那么页面会拿不到值,我们需要使用name来指定目标资源。

编程式导航 

        编程式导航实际意思是,通过用户的一些操作来实现页面的跳转,例如登录成功后跳转个人首页等等。为了方便演示,我的示例中使用的是点击(chilk)事件。

        基本步骤:

1.import我们的useRouter方法,用来获取router对象。

2.通过router对象的push方法,上传我们的路径信息(当然,一般会写在方法里面,通过事件触发)。

<script setup>
import {useRouter} from "vue-router";

const router = useRouter();

const tofarie = ()=> {
  router.push({path:'/farie',query:{num:666}});
}

const toflower = ()=> {
  router.push({name:'flower',params:{uid:220013025}});
}
</script>

<template>
  <h1>我是主页</h1>
  <h1>跳转按钮:</h1>
  <button @click="tofarie">跳转farie</button>
  <button @click="toflower">跳转flower</button>
  <br>
  <router-view></router-view>
  <footer>我是主页尾部</footer>
</template>

嵌套路由

        嵌套路由就来到了我们前面提到的children属性。

        指的是我们网页中嵌套了其他的网页资源,换到编程的视角就是父子组件。在什么场景使用呢?比如某个产品的网站,上边一个导航栏,中间是各种不同内容的分页。

        举个页面为例子:百度翻译   可以去看看

        步骤:

1.在路由信息中配置好子页面的路径:

2.在主页面中使用标签<router-view></router-view>,用于布置嵌套的页面资源

        在原生的html中也有这种页面嵌套。

重定向        

        重定向使用属性redirect,主要功能就是,当你访问该路径时,给你跳转到另一个路径。

        比如我下面的示例就是,当访问/other时,跳转到/myfarie。


网站公告

今日签到

点亮在社区的每一天
去签到