vue中实现路由跳转的三种方式(超详细整理)

news2025/2/27 14:07:46

vue中实现路由跳转的三种方式

一、使用vue-router

vue-router 本质是一个第三方的包 用的时候需要下载

步骤 (7步法 ):

  1. 下载vue-router模块到当前工程

     yarn add vue-router
    
  2. 在main.js中引入VueRouter函数

    // 引入路由
    import VueRouter from "vue-router";
    
  3. 添加到Vue.use()身上 – 注册全局RouterLink和RouterView组件

    // 注册全局
    Vue.use(VueRouter)
    
  4. 创建路由规则数组 – 路径和组件名对应关系

    创建路由规则数组(需要准备切换的页面组件)把准备好的页面组件引入到main.js中

    const routes = [{
                path: "/",
                redirect: "find" //默认显示推荐组件(路由的重定向)
            },
            {
                path: "/find",
                name: "Find",
                component: Find,
                //二级路由
                children: [{
                        path: "/",
                        redirect: "recom" //默认显示推荐组件
                    },
                    {
                        path: "ranking", //注意二级路由的路径千万不要加/
                        component: Ranking
                    },
                    {
                        path: "songlist",
                        component: SongList
                    },
                ]
            },
            {
                path: "/my",
                name: "My",
                component: My
            },
            {
                path: "/part",
                name: "Part",
                component: Part
            },
    
            {
                path: "*",
                component: NotFound //定义找不到已有组件时显示404
            },
        ]
    
  5. 用规则生成路由对象

        // 创建路由对象并且传入规则
    const router = new VueRouter({
        routes,
        mode: "history" //路由模式(默认为hash模式)
    })
    
  6. 把路由对象注入到new Vue实例中

    new Vue({
        router, //导入路由对象
        render: h => h(App),
    }).$mount('#app')
    
  7. router-view作为挂载点, 切换不同的路由页面

    当url的hash值路径切换,显示规则里对应的组件

    router-view 实现路由内容的地方,引入组件时写到需要引入的地方 需要注意的是,使用vue-router控制路由则必须router-view作为容器。(可以先引入根组件App.vue中进行自测)

注意: 一切都要以url上hash值为准

二、声明式-router-link 【实现跳转最简单的方法】

1.可用组件router-link来替代a标签

  • router-link 是vue-router提供了一个全局组件
  • router-link实质上最终会渲染成a链接 to属性等价于提供 href属性(to无需#)
  • router-link提供了声明式导航高亮的功能(自带类名)

代码如下:

<template>
  <div>
    <div class="footer_wrap">
      <router-link to="/find">发现音乐</router-link>
      <router-link to="/my">我的音乐</router-link>
      <router-link to="/part">朋友</router-link>
    </div>
    <div class="top">
      <router-view></router-view>
    </div>
  </div>
</template>
//在控制台元素检查时会发现激活的类名 在样式style中定义高亮样式 点击时就会高亮

router-link好处 : 自带激活时的类名, 可以做高亮

2.在跳转路由时, 可以给路由对应的组件内传值

在router-link上的to属性传值, 语法格式如下 :

(方式一)

to=/path?参数名=值

例:to="/part?name=小明"

对应页面组件接收传递过来的值

$route.query.参数名

接收数据:$route.query.name

(方式二)

to=“/path/值” (需在路由规则里配置/path/:参数名)

例:to="/part/小王"

配置:path:"/part/:username"

对应页面组件接收传递过来的值 (注意动态参数需要用params接收)

$route.params.参数名

接收数据:$route.params.username

三、编程式-用JS代码来进行跳转

用JS代码来进行跳转

语法: path或者name任选一个

一、$ router $ route的区别

$router : 是路由操作对象,只写对象

$route : 路由信息对象,只读对象

$ router操作路由跳转

this.$router.push({ name:‘hello’, query:{ name:‘word’, age:11} })

$route读取 路由参数接收

var name = this.$route.query.name;

二、路由跳转方式name 、 path 和传参方式params 、query的区别(重要)

path 和 name路由跳转方式,都可以用query传参

  • 使用path方式跳转路由 path会忽略params 所以path不能和params一起使用
  • 推荐使用name和query方式实现路由跳转

params传参,push里面只能是 name:‘xxx’,不能是path:‘/xxx’,因为params只能用name来引入路由,如果这里写成了path,接收参数页面会是undefined!!!

通过params传参

==注意:==这里使用name路由跳转方式路径不需要加 / 因为它只是个名字

this.$router.push({
    name:"Home",
    params:{
        id:this.id
    }
})

另一个页面接收:

这里使用params传参就需要写params接收

this.$route.params.id

通过query传参

this.$router.push({
    path:"/Search",
    query:{ //query是个配置项
        age:20
    }
})

另一个页面接收

this.$route.query.age

query相当于GET请求,页面跳转的时候,可以在地址栏看到请求参数

uery传参**

this.$router.push({
    path:"/Search",
    query:{ //query是个配置项
        age:20
    }
})

另一个页面接收

this.$route.query.age

总结:
query相当于GET请求,页面跳转的时候,可以在地址栏看到请求参数

params相当于POST请求,参数不会在地址栏中显示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/405210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【TypeScript】TS 看这一篇就够了

文章目录&#x1f9d1;‍&#x1f4bb;TypeScript基本概念TypeScript 是什么&#xff1f;为什么要有typescript安装编译 TS 的工具包编译并运行 TS 代码创建基于TS的vue项目&#x1f9d1;‍&#x1f4bb;TypeScript基础类型注解TypeScript类型概述TypeScript原始数据类型数组类…

Vue实现登录功能全套详解(含封装axios)

目录 Vue项目中实现登录大致思路&#xff1a; 用到的关键文件 一、安装插件 二、创建store 三、封装axios qs vue 插件 api.js的作用 四、路由拦截 五、登录页面实际使用 Vue项目中实现登录大致思路&#xff1a; 1、第一次登录的时候&#xff0c;前端调后端的登陆接…

vite入门/徒手搭建vite/配置vite/使用vite脚手架/vite步骤

以下内容全部以图片形式展示&#xff08;自己动手尝试一下印象岂不是更深&#xff1f;&#xff09; 当然啦&#xff0c;也有完整的&#xff0c;自己拉代码https://github.com/ispaomoya/build-vite.git 文章有点长&#xff0c;你忍一下 目录 一、了解一下webpack和vite 二、…

node.js安装及环境配置超详细教程【Windows系统安装包方式】

文章目录Step1&#xff1a;下载安装包Step2&#xff1a;安装程序Step3&#xff1a;查看Step4&#xff1a;环境配置最后补充&#xff1a;Step1&#xff1a;下载安装包 https://nodejs.org/zh-cn/download/ 根据自己电脑系统及位数选择&#xff0c;我的电脑是Windows系统、64位…

微信小程序登录方法,授权登陆及获取微信用户手机号

✅作者简介&#xff1a; 大家好五一快乐&#xff0c;我是痴心阿文&#xff0c;你们的学友哥&#xff0c;今天给大家分享微信小程序登录方法&#xff01; &#x1f4c3;个人主页&#xff1a;痴心阿文的博客_CSDN博客-TypeScript.js,笔记,CSS领域博主 &#x1f525;本文前言&…

微信小程序获取当前的位置

微信小程序获取位置信息的方式有两种&#xff0c;一种是调用微信官方的接口来获取&#xff0c;如getLocation,这种方式只能获取经纬度 微信官方文档 https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html 另一种是使用的第三方平台的&#xff0…

Web前端 | HTML引入CSS样式的三种方式

✅作者简介&#xff1a;一位材料转码农的选手&#xff0c;希望一起努力&#xff0c;一起进步&#xff01; &#x1f4c3;个人主页&#xff1a;每天都要敲代码的个人主页 &#x1f525;系列专栏&#xff1a;Web前端 目录 一&#xff1a;CSS 1. CSS概述 2. HTML引入CSS样式的…

Vue2.0搭建脚手架(vue-cli)

目录 前言 一、npm安装 二、搭建脚手架 1.安装脚手架vue-cli 2.搭建项目 前言 vue大概内容&#xff1a; Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上…

前端+后端项目 - 论坛信息管理系统(Web+servlet+MySQL+JDBC)

&#x1f91e;目录&#x1f91e; &#x1f496;一. 准备工作 &#x1f48e;1) 创建 web 项目 &#x1f48e;2) 创建目录结构 &#x1f48e;3) 配置 pom.xml &#x1f496;二. 数据库操作代码 &#x1f48e;1. 数据库设计 1.1 ER图 1.2 ER图转化为关系模型并优化 1.3 创…

(全网最详细!!)npm:无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

文章目录问题概述一、分析原因二、解决办法1.安装node.js&#xff08;1&#xff09;下载并安装&#xff08;2&#xff09;配置环境&#xff08;3&#xff09;打开CMD&#xff0c;检查是否正常path路径是否正常。&#xff08;4&#xff09;安装完成后测试下nodejs和npm是否安装成…

前端js调用后端API获取数据的三种方法(2022.7.25)

前端js调用后台API获取数据的三种方法&#xff08;2022.7.25&#xff09;前言需求分析一个Get实例浏览器请求SoapUI软件请求一个Post实例浏览器请求SoapUI软件请求1、Http简介&#xff08;Browser / Server&#xff09;1.1 六个主流的浏览器1.2 HTTP请求&#xff08;Get & …

java后端+前端使用WebSocket实现消息推送

java后端前端使用WebSocket实现消息推送&#xff08;流程详细代码&#xff09;创建WebSocket的简单实例操作流程1.引入Websocket依赖2.创建配置类WebSocketConfig3.创建WebSocketServer4.websocket调用前端WebSocket连接OK,下课&#xff01;&#xff01;&#xff01;在项目的开…

【uploader】表格化自整理vue-simple-uploader的文档(超详细)

文章目录1.vue-simple-uploader介绍2.安装和配置3. 组件标签的文档整理3.1 uploader标签3.2 uploader-btn标签3.3 uploader-drop标签3.4 uploader-list标签3.5 uploader-file标签3.6 uploader-unsopport标签4.请求中的参数轮子的github链接&#xff1a;两个项目的文档要结合着看…

HTML可用于情侣表白的爱心代码~,赶紧跟着操作,让她也拥有属于你的爱心吧。

文章目录前言一、效果图二、操作步骤第一步第二步第三步第四步第五步第六步源码前言 最近随着电视剧《点燃我温暖你》的火热播出&#xff0c;剧中帅气学霸李洵的炫酷爱心代码也迅速火出了圈&#xff0c;爱心素材也异常火爆&#xff0c;我在这里整理了一份大家有需自取哦~ 可用于…

【React Router 6 快速上手一】重定向Navigate / useRoutes路由表 / 嵌套路由Outlet

前言 博主主页&#x1f449;&#x1f3fb;蜡笔雏田学代码 专栏链接&#x1f449;&#x1f3fb;React专栏 之前学习了react-router-dom5版本的相关内容 参考文章&#x1f449;&#x1f3fb;React路由&#xff08;详解版&#xff09;和 路由的模糊匹配&#xff0c;重定向以及嵌套…

vue安装及环境配置

目录 1.安装 Node.js 2.配置默认安装目录和缓存日志目录 3.配置环境变量 4.配置淘宝镜像 5.安装vue和脚手架 6.创建并运行项目 1.安装 Node.js Download | Node.js 在这里&#x1f446;下载的是最新版&#xff0c;如果要安装以前的版本&#x1f447;&#xff0c;页面往下…

3分钟让你学会axios在vue项目中的基本用法(建议收藏)

Axios酸狗来教你 提示&#xff1a;本篇详解axios在vue项目中的实例。在使用Vue.js框架开发前端项目时&#xff0c;会经常发送ajax请求服务端接口&#xff0c;在开发过程中&#xff0c;需要对axios进一步封装&#xff0c;方便在项目中的使用。 文章目录Axios酸狗来教你Axios简介…

JavaScript之正则表达式的使用方法详细介绍

目录 I. 序言&#xff1a;JavaScript中正则表达式的使用场景 II. 创建第一个正则表达式 III. 常见的正则表达式属性 &#x1f4d5; 三种匹配规则 &#x1f4d5; 五种常见属性 &#x1f4d5; 规则g的使用详解 IV. 常见的正则表达式方法举例介绍 &#x1f4d8; test方法 …

idea构建web项目-超详细教程

1、idea构建web项目 idea构建web项目的超级详细教程&#xff0c;一步一步来&#xff0c;完全没问题&#xff01; 1、新建一个空项目 2、新建java模块&#xff0c;名为webDemo1 3、选择webDemo1右键&#xff0c;选择Add Framework Support 选择Web Application 4、在WEB-…

Geeker-Admin项目跟做笔记(vue3+vite+pinia)

文章目录一、路由配置&#xff08;一&#xff09; 静态路由&#xff08;二&#xff09;动态路由二、axios的配置1. 创建axiosCancel.ts文件&#xff0c;用于有pending后直接取消2. axios封装3. 使用三、pinia仓库的使用四、Header 设计笔记1. 国际化&#xff08;中英文切换&…