四、vue中路由router配置详解

news2025/2/25 12:58:56

目录

一、vue中的路由作用

二、vue中的路由router 使用步骤

三、路由跳转

1、带参数路由跳转:

(1)this.$router.push()  :

(2)this.$router.replace()  :

2、不带参数路由跳转

3、this.$router.go(n)

四、标签路由

五、路由元:

六、路由使用的坑


官方文档地址:

入门 | Vue Router

一、vue中的路由作用

vue的主要思想是组件化开发,路由用来配置组件对应展示路径,比如

二、vue中的路由router 使用步骤

创建路由文件——使用路由——配置路由出口,使路由配置内容展示在页面上

(1)创建路由文件:一般路由文件单独放在router文件夹

在src目录下,创建router文件夹,文件夹下,创建index.js,用来实现路由的创建。

vue中的router 需要用到vue  和vue-router 两个依赖,请看一下代码

 (2)使用路由

【1】在main.js 中引入路由文件: import router from './router',  注意router  不要变且为小写

【2】注册路由(因为main.js是程序的主入口,在里面注册后,程序运行起来才会自动读取路由信息),请看以下代码

 (3)配置路由出口,使路由中的组件内容展示在页面上

在App.vue中,添加  <router-view></router-view>  用来展示路由配置组件的内容,示例如下

以上都配置完后,运行程序,即可。

以上路由配置完后,怎么在代码中实现路由跳转呢?

三、路由跳转

1、带参数路由跳转:

(注意路由跳转用$router  ,路由取参用:$route

(1)this.$router.push()  :

跳转到指定url路径,并向history栈中添加一个记录,点击后退会返回到上一个页面

  【1】带参数:页面通过path和query传递参数,(刷新页面后参数不会丢失,query传参的参数会带在url后边展示在地址栏(/home?user=test),类似get请求

           目标页面通过this.$route.query获取参数

          示例:

                        跳转path=‘/home’的路由并且传递参数selected=1  :

                                  this.$router.push({path: '/home', query: {selected: "2"}});

                       目标页面获取selected参数:

                                  this.$route.query.selected

【2】带参数:页面通过path和params,name和path传递参数 (刷新页面后参数会丢失,url参数不展示在地址来,类似post请求

       (1)在给指定路由名称的路由,传递参数,即通过name和path传递

                        跳转name=‘register’的路由并且传递参数user=测试用户  :

                                this.$router.push({name: 'register', params: {user: '测试用户'}});         
                目标页面获取user参数值:

                                 this.$route.params.user

示例:

找到router文件中name='register'路由:

src/view/register/index.vue  中取参数


            
               (2)给指定路由地址,传递参数  ,即通过path和params传递参数

  传参:this.$router.push({path: '/register', params: {user: '测试用户'}});       

 取参: $router.params.user

(2)this.$router.replace()  :

this.$router.replace使用方式与this.$router.push基本一致,只是this.$router.replace不会在history中添加记录,而是替换掉history的记录,无法通过浏览器的返回功能回到上一个页面,一般用来在登出系统时使用

注意:push方法也可以传replace this.$router.push({path: '/homo', replace: true})

总结:

params和query传递方式的区别是:query参数在地址栏可以看到,可以获取到,类似get请求;params参数在地址栏看不到,参数,只能第一次进入获取到,刷新页面后,参数会丢失,类似post请求。

push和replace区别:push地址保存在history栈中,有历史地址记录,通过this.$router.go(n),可以返回到上一步;replace是直接替换当前页面地址,没有历史地址记录。

2、不带参数路由跳转

  1. this.$router.push('/home')     

  2. this.$router.push({name: 'home'});

  3. this.$router.push({path: '/home'});

3、this.$router.go(n)

向前或向后跳转n个页面,n可以为正整数或负整数,一般用this.$router.go(-1)来返回上一个页面

四、标签路由

<router-link to='需要跳转到的页面的路径></router-link>

浏览器在解析时,将它解析成一个类似于 < a > 的标签

五、路由元:

路由元,通过meat属性,可以将任何信息附加到路由上,可以判断谁可以访问路由及控制是否访问组件。

格式:           meta:{

                        变量名1:变量值,

                        变量名2:变量值,

                     }

场景:比如在前端开发中,自定义的页脚组件,不想在注册页面展示,在首页展示,可以通过设置meta来实现,

【1】给router/index.js 路由文件中,添加meta属性,自定义名称showfooter 来区分是否展示,实现:当打开/home 主页时,显示页脚;打开/register 注册页面时,不显示页脚

【2】修改App.vue  中的页脚组件,增加v-show属性,通过路由配置中的meta.showfooter,控制Footer页脚组件的显示隐藏。v-show="true" 显示,v-show="false" 隐藏

六、路由使用的坑

安装路由依赖  npm install --save vue-router  ,这么安装后,容易出现 export 'default' (imported as 'VueRouter') was not found in 'vue-router' 警告,导致路由失效,这是因为,npm install --save vue-router 默认安装的是最新版本的路由,打开根目录的package.json文件,查看dependencies 中的vue-router版本,如果是最新的版本4.x.x ,重新安装3版本后再进行测试,就可以运行了. 

  重新安装3版本:npm install --save vue-router@3.1.3

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

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

相关文章

【手把手教安装】VUE安装教程+VScode配置!!!

含泪整理Vue安装教程 因为换了新电脑很多软件要重装&#xff0c;所以想到可以写一份教程&#xff0c;为我以后换电脑方便重装也为了大家&#xff01;&#xff01; 第一次安装Vue踩坑太多&#xff0c;这里整理一份超详细教程&#xff08;win11也可&#xff01;&#xff01;&…

uniapp 控制台警告 DevTools failed to load SourceMap: Could not load content for http://127.0.0.1问题解决

在uniapp中控制台警告&#xff0c;这是用于在开发时定位到报错的源码位置的工具SourceMap出问题了&#xff0c;如果单纯只是想消除这个警告的方法写在下面第一个&#xff0c;真正解决工具问题的方法是第二个&#xff08;需要下载一个插件&#xff09;&#xff0c;现在放在这边做…

如何修复运行缓慢的 WordPress 网站?

&#x1f482; 个人网站:【海拥】【摸鱼游戏】【神级源码资源网站】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 想寻找共同学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 就其 SEO 而言&…

npm、nrm两种方式查看源和切换镜像

一、使用npm查看当前源、切换淘宝镜像、切换官方源 &#xff08;1&#xff09;npm查看当前源&#xff1a; npm get registry&#xff08;2&#xff09;npm设置淘宝镜像源&#xff1a; npm config set registry http://registry.npm.taobao.org&#xff08;3&#xff09;npm设…

2023 前端一场面试及答案整理

金三马上就要开始了&#xff0c;俗话说得好&#xff0c;知己知彼百战百胜&#xff0c;多准备总是没有错的。以面试的形式和大家一起学习、一起回顾我们的职场生涯。今天简单总结一下我个人去面试&#xff0c;包括我在面试别人时的经验。加油加加油&#xff01;&#xff01;&…

2022最新Nodejs下载安装配置步骤(保姆级教程)

1. 进入官网选择下载版本 http://nodejs.cn/download/2.安装过程 步骤1&#xff1a;选择next选项 步骤2&#xff1a;勾选接受协议选项&#xff0c;点击 next&#xff08;下一步&#xff09;按钮 : 步骤3&#xff1a;其默认安装目录是C:\Program Files\nodejs\&#xff0c;当…

【Python】ttkbootstrap的介绍与使用

一、什么是ttkbootstrap&#xff1f; 官方文档 [较慢]&#xff1a;https://ttkbootstrap.readthedocs.io/en/latest/ ttkbootstrap 是一个基于 tkinter 的界面美化库&#xff0c;使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序 二、安装步骤 安装命令…

Vue项目安装less和less-loader

第一步&#xff1a;查看webpack和webpack-cli是否安装 打开cmd&#xff0c;通过命令查看 webpack -vwebpack-cli -v如果没有安装&#xff0c;要先进行安装 可以通过 npm view webpack version / npm view webpack-cli version 查看当前webpack的最新版本 可以通过 npm vie…

什么是axios(写给小白的理解笔记)

0.为什么会诞生axios 最初浏览器页面向服务器请求数据时&#xff0c;返回的是整个页面&#xff0c;整个页面都会刷新&#xff0c;当我们只需要请求部分数据时&#xff0c;返回整个页面会造成网络资源的占用&#xff0c;为了提高数据请求效率&#xff0c;异步网络请求Ajax出现了…

羊了个羊网页版

最近羊了个羊火的不得了&#xff0c;利用周末时间实现一个网页版。步骤如下&#xff1a; 1&#xff0c;用reactjs 实现。 2&#xff0c;实现Gameroom类。 3&#xff0c;实现Card类。 4&#xff0c;通过父组件控制子组件通信方式&#xff0c;控制点击事件。 5&#xff0c;通过t…

nvm切换node版本

在实际的前端开发过程中&#xff0c;可能会经常遇见 node.js 的版本问题&#xff0c;不同的项目需要使用不同的 node.js 版本。比如Vue2和Vue3需要的Node版本不一样。 地址&#xff1a;https://github.com/coreybutler/nvm-windows/releases 注意&#xff1a;安装之前必须完…

ChatGPT初体验——震撼,好用,贾维斯已来

2022.12.26 大概一个月的使用体验&#xff0c;我觉得chagpt的使用还算远远超出我的想象&#xff0c;可以说只有你想不到的&#xff0c;最近需要写一个基于shell的学生选课系统&#xff0c;但是时间实在是紧张的很&#xff0c;一开始chatgpt是无法接受这么大的要求的&#xff0c…

js实现数组去重的方式(7种)

目录JS数组去重的方式1.利用Set()Array.from()2.利用两层循环数组的splice方法3.利用数组的indexOf方法4.利用数组的includes方法5.利用数组的filter()indexOf()6.利用Map()7.利用对象JS数组去重的方式 例&#xff1a;将下面数组去除重复元素&#xff08;以多种数据类型为例&a…

vue开发中,数据更新,但视图不刷新

我们在开发过程中会碰到数据更新&#xff0c;但是视图并未改变的情况&#xff0c;情况如下&#xff1a; 第一种:动态给对象新增属性或者删除属性是不会触发视图刷新的,Vue识别不到&#xff1b; 第二种:通过数组下标修改数组中的元素或者手动修改数组的长度,Vue识别不到&#…

【Javaweb学习笔记】在Eclipse中创建Web项目

【Javaweb学习笔记】在Eclipse中创建Web项目 哈喽大家好&#xff0c;这里是Java框架学习笔记专栏第二期 本期内容——在Eclipse中创建Web项目 前期回顾&#xff1a; 第一期——schema约束 笔者还是菜菜&#xff0c;还请大家多多指教呀&#xff01; 文章目录【Javaweb学习笔记】…

解决onebot提示当前QQ版本过低,请升级到最新版在登录!

文章目录前言方法一方法二1️⃣下载文件2️⃣本地运行3️⃣重新启动go-cqHttp4️⃣服务器下载go-cqhttp5️⃣配置gocqhttp6️⃣启动go-cqhttp结语前言 &#x1f947;个人主页&#xff1a;MIKE笔记 &#x1f948;文章专栏&#xff1a;技术教程 &#x1f4e3;TG交流群&#xff1a…

vue:聊天对话框的实现

实现效果&#xff1a;不知道怎么录屏 就用图片展示了&#xff0c;实现了聊天框的基础功能&#xff0c;也有一些细节考虑不完全。未输入消息时可发送图片或视频&#xff0c;输入消息后显示发送按钮&#xff0c;保持滚动条在位于底部的最新消息。 实现方式&#xff1a; 1.布局&a…

React中的setState使用细节和原理解析

文章目录setState使用详解使用setState的原因setState的基本用法setState的异步更新setState获取异步结果setState一定是异步?setState使用详解 前面我们有使用过setState的基本使用, 接下来我们对setState使用进行详细的介绍 使用setState的原因 开发中我们并不能直接通过修…

vue项目打断点的三种方式

方式一&#xff1a;使用debugger介绍&#xff1a;js自带的方法优点&#xff1a;简单好用&#xff0c;不需要额外的配置注意&#xff1a;生产环境下需要去掉方式二&#xff1a;使用vsCode插件断点介绍&#xff1a;vscode集成的断点调试&#xff0c;大佬必备优点&#xff1a;减少…

Nodejs安装及npm配置(超详细)

文章目录一、Node.js 下载二、Node.js 安装node.js简单安装三、Node.js 配置配置npm源关于npm源的更新四、可能遇到的问题1. 直接输入npm 或 npm 命令出错一、Node.js 下载 Node.js官网下载地址 Node.js中文下载地址 本文以 node.js 16.14.2 版本做演示&#xff0c;此版本要…