router详解

1、在使用element导航栏,需要使用路由跳转时添加 :router="true" 属性

<el-menu default-active="1-4-1" class="el-menu-vertical-demo" :router="true" @open="handleOpen" @close="handleClose" :collapse="isCollapse">
            <el-menu-item index="/index/hotel">
                <i class="el-icon-setting"></i>
                <span slot="title">酒店</span>  
            </el-menu-item>
</el-menu>

2、默认打开子级组件 redirect:'/xxxx'

{
    path:'/',
    component:index,
    redirect:'/hotel',
    children:[
         {
             path: 'hotel',
             name: 'hotel',
             component:hotel,
         }
               
       ]

},

3、路由跳转

<router-link replace class="list-group-item" active-class="active" to="/home/message">Message</router-link>
  • 作用:控制路由跳转时操作浏览器历史记录的模式
  • 浏览器的历史记录有两种写入方式:pushreplace其中push是追加历史记录,replace是替换当前记录。路由跳转时候默认为push方式
  • 开启replace模式:<router-link replace ...>News</router-link>

4、router跳转的三种方式

第一种:vue-router

  不带参数写法:

  name,path都行, 建议用name  

<router-link :to="{name:'router跳转的路径名称/别名'}"> 
<router-link :to="{path:'router跳转的目标组件的路径'}"> 

  带参数写法:

  带参数的param传参写法

//name写法
<router-link :to="{name:'router跳转的路径名称/别名', params:{需要传递的参数的对象格式}}">  

//跳转路由并携带query参数,to的字符串写法
<router-link :to="`跳转的路径?id=${id参数}&title=${标签参数}`"

  路由配置:

  不配置path 第一次可请求,刷新页面id会消失,配置path,刷新页面id会保留

path: "/home/:id" 或者 path: "/home:id"

   html 取参

$route.params.id

   script 取参

this.$route.params.id

   带参数的query传参写法

<router-link :to="{name:'router跳转的路径名称/别名', query: {对象形式的参数}}">

   query传参数 (类似get,url后面会显示参数)   路由可不配置

   html 取参

$route.query.id

   script 取参

this.$route.query.id

第二种:this.$router.push() (函数里面调用)

  不带参数写法:

//简介写法
this.$router.push('router跳转的路径')

//name写法
this.$router.push({name:'router跳转的路径名称/别名'})

//path写法
this.$router.push({path:'router跳转的路径'})

  带参数写法:

  带参数的query传参写法:

this.$router.push({name:'router跳转的路径名称/别名',query: {id:'1'}})
this.$router.push({path:'router跳转的路径',query: {id:'1'}})

  html 取参

$route.query.id

  script 取参

this.$route.query.id

  带参数params传参写法:

//name写法
<router-link :to="{name:'router跳转的路径名称/别名', params:{需要传递的参数的对象格式}}">  

//跳转路由并携带query参数,to的字符串写法
<router-link :to="`跳转的路径?id=${id参数}&title=${标签参数}`"

  路由配置:

  不配置path 第一次可请求,刷新页面id会消失,配置path,刷新页面id会保留

path: "/home/:id" 或者 path: "/home:id"

   html 取参

$route.params.id

   script 取参

this.$route.params.id

  直接通过path传参写法

this.$router.push({path:'/home/123'}) 或 this.$router.push('/home/123') 

  获取参数:

this.$route.params.id

传递对象(obj不能过长否则会报错)

query传递对象 (类似get,url后面会显示参数) JSON.stringify(obj) 转一下.

  接收参数:

JS:JSON.parse(decodeURIComponent(this.$route.query.obj)) 

HTML:JSON.parse(decodeURIComponent($route.query.obj))

总结:

query类似 get, 跳转之后页面 url后面会拼接参数,类似?id=1, 非重要性的可以这样传, 密码之类还是用params刷新页面id还在。
params类似 post, 跳转之后页面 url后面不会拼接参数 , 但是刷新页面id会消失

第三种:this.$router.replace() (用法同上,push)

第四种:this.$router.go(n)

向前或者向后跳转n个页面,n可为正整数或负整数1

路由三种跳转方式的总结:

  • 1、this.$router.push
    跳转到指定url路径,并在history栈中添加一个记录,点击后退会返回到上一个页面

  • 2、this.$router.replace
    跳转到指定url路径,但是history栈中不会有记录,点击返回会跳转到上上个页面 (就是直接替换了当前页面)

  • 3、this.$router.go(n)
    向前或者向后跳转n个页面,n可为正整数或负整数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue RouterVue.js官方的路由管理器,用于构建单页面应用。它可以实现前端路由功能,将路径和组件进行映射,使得页面的路径改变时可以动态地切换组件显示。Vue Router的使用步骤如下: 1. 创建路由组件:首先需要创建一个或多个组件,用来作为路由的目标组件,即根据路径切换显示的组件。 2. 配置路由映射:在创建Vue实例之前,需要配置路由映射关系。通过定义一个路由表,将路径和组件进行映射,指定每个路径对应的组件。这可以通过创建一个路由实例,并传入一个包含路由配置的对象来实现。 3. 使用路由:在Vue实例中使用路由功能,主要有两个方面。一是使用`<router-link>`组件设置导航链接,该组件会根据指定的路径生成对应的链接,点击链接时会触发路由切换;二是使用`<router-view>`组件用来显示当前路径对应的组件内容,它会根据当前路径的变化动态地渲染不同的组件。 通过以上步骤,我们可以使用Vue Router来实现前端路由功能,使得用户在浏览器中的路径改变时,页面能够根据路径的变化来动态地切换显示不同的组件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue-router 详解](https://blog.csdn.net/CSDNwei/article/details/130841098)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值