路由进阶--编程式导航(在Vue路由中实现跳转,跳转传参)

路由进阶--编程式导航(跳转,跳转传参)

文章目录

1、编程式导航

1.1、基本跳转

需求:点击按钮跳转如何实现?

编程式导航:用JS代码来进行跳转

  1. path 路径跳转(简易方便)

    javascript 复制代码
    this.$router.push('路由路径')     //方式1
    
    this.$router.push({     //方式2
       path:'路由路径'
    })
  2. 通过命名路由的方式跳转 (需要给路由起名字) 适合path路径长的情况

    javascript 复制代码
    const router = new VueRouter({
      routes: [
        { name: 'search', path: '/search/:words?', component: Search },
      ]
    })
    javascript 复制代码
    this.$router.push({
       name: '路由名'
    })

    示例:

    vue 复制代码
    <template>
    	<button @click="goSearch">搜索一下</button>
    </template>
    
    <script>
    export default {
      name: 'FindMusic',
      methods: {
        goSearch () {
          // 1. 通过路径的方式跳转
          // (1) this.$router.push('路由路径') [简写]
          // this.$router.push('/search')
    
          // (2) this.$router.push({     [完整写法]
          //         path: '路由路径' 
          //     })
          // this.$router.push({
          //   path: '/search'
          // })
    
          // 2. 通过命名路由的方式跳转 (需要给路由起名字) 适合长路径
          //    this.$router.push({
          //        name: '路由名'
          //    })
          this.$router.push({
            name: 'search'
          })
        }
      }
    }
    </script>

1.2、跳转传参

需求:点击搜索按钮,跳转需要传参如何实现?

两种传参方式:查询参数,动态路由传参

  1. path 路径跳转传参(query传参,动态路径传参)

    query传参:

    javascript 复制代码
        (1)
    	this.$router.push('路由路径') [简写]
        this.$router.push('路由路径?参数名=参数值')
    	//跳转到其他页面接收:$router.query.参数名
    
        (2) 
    	this.$router.push({    // [完整写法] 更适合传参
        path: '路由路径'
        query: {
           参数名: 参数值,
           参数名: 参数值
          }
        })
        //跳转到其他页面接收:$router.query.参数名

    动态路径传参:

    javascript 复制代码
      this.$router.push({
          name: '路由名'
          query: { 参数名: 参数值 },
          params: { 参数名: 参数值 }
      })
      //跳转到其他页面接收:$router.params.参数名    (动态传参就需要配置路由,例如下列代码)
    // const router = new VueRouter({
    //   routes: [
    //     { name: 'search', path: '/search/:参数名?', component: Search }
    //   ]
    // })
  2. name命名路由跳转传参

    query传参:

    javascript 复制代码
     this.$router.push({
         name: '路由名'
         query: { 参数名: 参数值 }
     })
        //跳转到其他页面接收:$router.query.参数名

    动态路径传参:

    javascript 复制代码
     this.$router.push({
         name: '路由名'
         params: { 参数名: 参数值 }
     })
    //跳转到其他页面接收:$router.params.参数名    (动态传参就需要配置路由,例如下列代码)
    // const router = new VueRouter({
    //   routes: [
    //     { name: 'search', path: '/search/:参数名?', component: Search }
    //   ]
    // })
相关推荐
fruge14 分钟前
React 2025 完全指南:核心原理、实战技巧与性能优化
javascript·react.js·性能优化
速易达网络2 小时前
Bootstrap 5 响应式网站首页模板
前端·bootstrap·html
etsuyou2 小时前
js前端this指向规则
开发语言·前端·javascript
lichong9512 小时前
Android studio 修改包名
android·java·前端·ide·android studio·大前端·大前端++
cai_huaer2 小时前
BugKu Web渗透之 cookiesWEB
前端·web安全
lichong9512 小时前
Git 检出到HEAD 再修改提交commit 会消失解决方案
java·前端·git·python·github·大前端·大前端++
友友马2 小时前
『 QT 』QT控件属性全解析 (一)
开发语言·前端·qt
不想上班只想要钱3 小时前
vue3+vite创建的项目,运行后没有 Network地址
前端·javascript·vue.js
流***陌3 小时前
手办盲盒抽赏小程序前端功能设计:兼顾收藏需求与抽赏乐趣
前端·小程序
岁月宁静3 小时前
在富文本编辑器中封装实用的 AI 写作助手功能
前端·vue.js·人工智能