Vue-详解设置路由导航的两种方法

一、< router-link :to="…">

 to里的值可以是一个字符串路径,或者一个描述地址的对象。例如:
//字符串
<router-link to="apple"> to apple</router-link>

// 对象
<router-link :to="{path:'apple'}"> to apple</router-link>

// 命名路由
<router-link :to="{name: 'applename'}"> to apple</router-link>

//直接路由带查询参数query,地址栏变成 /apple?color=red
<router-link :to="{path: 'apple', query: {color: 'red' }}"> to apple</router-link>

// 命名路由带查询参数query,地址栏变成/apple?color=red
<router-link :to="{name: 'applename', query: {color: 'red' }}"> to apple</router-link>

//直接路由带路由参数params,params 不生效,如果提供了 path,params 会被忽略
<router-link :to="{path: 'apple', params: { color: 'red' }}"> to apple</router-link>

// 命名路由带路由参数params,地址栏是/apple/red
<router-link :to="{name: 'applename', params: { color: 'red' }}"> to apple</router-link>

二、router.push(…)方法

同样的规则也适用于router.push(…)方法
// 字符串
router.push('apple')

// 对象
router.push({path:'apple'})

// 命名路由
router.push({name: 'applename'})

//直接路由带查询参数query,地址栏变成 /apple?color=red
router.push({path: 'apple', query: {color: 'red' }})

// 命名路由带查询参数query,地址栏变成/apple?color=red
router.push({name: 'applename', query: {color: 'red' }})

//直接路由带路由参数params,params 不生效,如果提供了 path,params 会被忽略
router.push({path:'applename', params:{ color: 'red' }})

// 命名路由带路由参数params,地址栏是/apple/red
router.push({name:'applename', params:{ color: 'red' }})

三、注意点

1、 关于带参数的路由总结如下:
1、无论是直接路由“path" 还是命名路由“name”,带查询参数query,地址栏会变成“/url?查询参数名:查询参数值“;

2、直接路由“path" 带路由参数params params 不生效;

3、命名路由“name" 带路由参数params 地址栏保持是“/url/路由参数值”;

2、设置路由map里的path值:
1、带路由参数params时,路由map里的path应该写成:  path:'/apple/:color' ;

2、带查询参数query时,路由map里的path应该写成: path:'/apple'
3、获取参数方法:
1、在组件中:  {{$route.params.color}}

2、在js里: this.$route.params.color
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,可以非常方便地在单页应用管理应用的路由。 在使用 Vue Router 进行路由管理,我们需要用到它的一个重要组件 router-view。router-view 可以理解为路由的容器,用于显示当前路由对应的组件。 下面我们来详细介绍一下 router-view 的使用方式和相关属性。 ### 基本用法 在 Vue Router 使用 router-view 很简单,只需要在需要展示路由组件的地方加上 <router-view></router-view> 标签即可。 例如,我们有一个路由配置如下: ```js const routes = [ { path: '/', name: 'home', component: Home }, { path: '/about', name: 'about', component: About } ] ``` 在需要展示路由组件的地方添加 <router-view></router-view> 标签: ```html <template> <div> <router-view></router-view> </div> </template> ``` 这样,当路由为 '/' ,会显示 Home 组件;当路由为 '/about' ,会显示 About 组件。 ### 嵌套路由Vue Router ,我们可以使用嵌套路由来实现复杂的路由配置。当我们需要在一个父路由下展示多个子路由,可以使用嵌套路由。 例如,我们有一个父路由 '/user',下面有两个子路由 '/user/profile' 和 '/user/settings',路由配置如下: ```js const routes = [ { path: '/user', component: User, children: [ { path: 'profile', component: Profile }, { path: 'settings', component: Settings } ] } ] ``` 在 User 组件,我们需要使用 router-view 来展示子路由对应的组件: ```html <template> <div> <h1>User Page</h1> <router-view></router-view> </div> </template> ``` 这样,当路由为 '/user/profile' ,会显示 Profile 组件;当路由为 '/user/settings' ,会显示 Settings 组件。 ### 路由命名视图 在某些情况下,我们需要在同一个页面展示多个路由组件。此,我们可以使用路由命名视图来实现。 路由命名视图是一种特殊的 router-view,它可以指定路由组件的渲染位置。 例如,我们有一个路由配置如下: ```js const routes = [ { path: '/', components: { default: Home, header: Header, footer: Footer } } ] ``` 这里我们通过 components 属性来指定每个路由命名视图对应的组件。default 表示默认的视图,也就是没有指定名字的视图。 在需要展示路由组件的地方,我们需要使用 router-view 的 name 属性来指定命名视图的名称: ```html <template> <div> <router-view name="header"></router-view> <router-view></router-view> <router-view name="footer"></router-view> </div> </template> ``` 这样,我们就可以在同一个页面展示多个路由组件了。 ### 路由过渡动画 在 Vue Router ,可以通过 transition 组件来给路由切换添加过渡动画。 首先,我们需要在 App.vue 添加 transition 组件: ```html <template> <div> <transition name="fade"> <router-view></router-view> </transition> </div> </template> ``` 这里我们使用 name 属性来指定过渡动画的名称,fade 是一个自定义的名称。 接下来,我们需要在 CSS 定义过渡动画: ```css .fade-enter-active, .fade-leave-active { transition: opacity .5s; } .fade-enter, .fade-leave-to { opacity: 0; } ``` 这里我们使用 opacity 属性来控制元素的透明度,当元素进入或离开,会触发过渡动画。 至此,我们已经介绍了 router-view 的基本用法、嵌套路由路由命名视图和路由过渡动画。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值