「vue基础」Vue Router 使用指南上篇(文末送漂亮的 Vue 站点源码)

640?wx_fmt=png

关注前端达人,与你共同进步


文末送高品质Vue站点源码,不容错过哦!

640?wx_fmt=jpeg


大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置。

其实前端这些框架的路由概念也是借鉴了后端路由框架的思想,让我们能像后端一样,进行路由规则化的配置。Vue的路由插件不仅是官方提供还有完善的文档,还有一个优势就是随着Vue版本同步更新。

安装路由插件( Vue Router)

你可以通过npm(npm install vue-router)或通过 Vue CLI 脚手架创建项目的时候进行选择安装。本节的示例,我们将在上节的例子基础上,通过 npm 的方式安装路由,我们将从基础的安装、配置讲起,然后在逐步的深入学习。

首先,我们通过控制台,将目录切换到当前项目的根目录,我们输入以下命令进行手动安装:

npm install vue-router

接下来,完成安装后,我们需要对其进行配置,将路由映射到对应的组件上,我们在 src 文件夹中创建一个 router.js 的文件,然后添加以下内容:

src/router.js

640?wx_fmt=jpeg


我们首先导入 Vue 本身和 Vue路由,因为路由是插件,必须在Vue对象中进行注册,这里我们使用 vue.use() 进行注册。

接下来,我们创建了一个Router实例,并进行了相关初始化的配置。这里你至少需要配置一个路由规则,你可以看到这里是对象数组的形式进行定义的,路径对应着对应的组件,我们稍后会对这些参数进行详细的讲解。

接下来你可能会猜到,我需要完成一个 Home 组件的创建。

注意:如果你通过脚手架的形式安装 Vue Router 时,它会为你在当前的项目中自动创建一个 views 的文件夹,我们应该提前规划好,这些所谓的页面组件,将其放在这里,区别于其它的公共组件,我们应该遵守这项规则。

src/views/Home.vue

640?wx_fmt=jpeg


然后,我们别忘记了修改 App 这个组件的代码内容,代码如下所示:

640?wx_fmt=jpeg



从上述代码我们可以看出,我们使用了<router-view></router-view> 替换了相关组件的标签,这是 Vue Router 插件提供的组件之一,这里用来显示当前处于活动状态的路由组件。

注意:这里我们引入了一个 CSS 框架,别忘了进行手动安装,你可以通过以下命令进行安装:npm i semantic-ui-css

最后我们要做的是将路由配置导入到应用程序的入口,然后将其传入Vue实例对象里,进行初始化,如下代码所示:

640?wx_fmt=jpeg


从上述代码中,我们可以看出,我们将导入的 router.js 创建的实例作为参数传递给Vue实例,然后作为插件注册到我们的Vue实例中,这样使得路由功能在整个项目中得以使用。

到此为止,我们就完成了第一个关于路由组件的例子,我们可以输入 npm run serve 看看是否能正常运行,如果不出意外的话,你能看到如下的效果,还蛮不错哦:

640?wx_fmt=jpeg


Vue-router 配置

路由初始化时,我们可以进行一些参数配置,如下所示:

base:页面基础路径

这个参数配置允许你所有的URL路径都是基于这个路径之下,比如你希望Vue项目站点,都位于 www.example.com/my-app/ 这个路径下面,你可以将 base 参数设置 my-app 即可,如下代码所示:

640?wx_fmt=jpeg


你可能看到了我们在上个例子中加了个mode参数,接下来我们来聊聊mode参数是做啥的。

mode:hash / history

配置路由 history 模式

此模式可以将你的项目路由配置成#的模式,例如 www.example.com/#/blog 这个形式,这样做主要是为了兼容旧版本浏览器,主要其不兼容HTML5 history 的模式,我们都清楚# 更多是用来做锚点定位的,同时它不会被搜索引擎解析,导致网站 SEO 效果不好。

服务端配置: 如果你将项目部署到服务端,你需要了解一些基础的服务端配置,你可以参考这个链接:https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations

更多的 Vue-router 参数: 如果你想了解更多的参数配置,你可以查看官方文档进行详细了解:

https://router.vuejs.org/api/#router-construction-options

创建 Routes

我们在文章的开头学习了,如何创建自定义的 routes 对象实例及相关的配置内容。

比如我们可以为每个需要定义路由的组件定义路径规则,如下段代码所示:

640?wx_fmt=jpeg


当用户输入/hello-world,将会显示 HelloWorld 组件。除了这些参数,还有如下常见参数,你需要了解下:

name: 这个属性是可选项,如果你的程序比较简单,就没必要使用,但是大多数我还是建议你配置上,比如你可以在如下场景进行使用:

1、通过name属性,为一个页面中不同的router-view渲染不同的组件,如下代码所示:

640?wx_fmt=jpeg


2、使用$router.name获取组件name值

640?wx_fmt=jpeg


3、页面渲染时传递参数,这个稍后会详细介绍到

640?wx_fmt=jpeg


redirect: 页面重定向,将当前路径导向另外一个路径,如下代码所示:

640?wx_fmt=jpeg


beforeEnter: 我们可以定义进入这个路由之前执行的函数。关于这个详细的用法,我会在路由守卫里进行详细介绍。

meta:我们可以通过这个参数自定义些内容,比如我们做导航的面包屑路径问题,将会用到这个配置,如下图所示:

640?wx_fmt=jpeg


640?wx_fmt=jpeg


640?wx_fmt=jpeg


如果你想了解更多关于routes对象的参数内容,你可以访问这篇官方文档进行详细了解 https://router.vuejs.org/api/#routes

路由传参(Route Parameters)

通常我们的路由是动态的,通过会有类似带ID这样的URL传值,我们可以使用冒号的形式进行定义,如下段代码所示:

640?wx_fmt=jpeg


上述代码我们指定了路由的名称name,并指定 /blog/slug 这种路径的传参形式,接下来我们来看看如何在路由里接收获取这个参数,比如下段代码,我们接收这个参数进行AJAX的接口请求,如下所示:

640?wx_fmt=jpeg


最好将this.$route的使用限制在页面组件里,并通过props的方式接收参数传递给需要的子组件,这样可以避免UI组件耦合到路由里,从而更方便重用。

小节

今天的内容就和大家分享到这里,今天我们一起学习了什么是Vue Router,并亲自动手创建了一个简单的路由项目,接着我们又进一步学习了Vue-router 配置及 Routes的相关配置,最后我们又学习了如何路由传参。由于篇幅原因,关于路由的 Navigation 导航与路由守卫的内容将会在下面的文章进行详细介绍,并会带着大家亲自动手做一个路由守卫的例子,敬请期待哦。


Vue 站点源码(关注公众号,回复“ vue” 免费获取)

Vuely是使用Vuejs 2和VuetifyJs开发的完全响应式管理模板。现在有Laraval,Laraval Passport Authentications,Express js和Angular版本。它有许多预先集成的功能,这些功能通过简单的组件结构(包括自定义页面)开发而成。预先设计的自定义页面以及诸如图表,图形和数据表之类的集成功能使您能够轻松开发后端面板。Vuely已准备好具有RTL支持的翻译功能,还提供带有超酷的深黑色风格。


注:有效期三天,需要要抓紧哦!


640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

vue基础相关文章


专注分享当下最实用的前端技术。关注前端达人,与达人一起学习进步!

长按关注"前端达人"

640?wx_fmt=gif
640?wx_fmt=jpeg


前端达人
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 技术栈 带你探究 vue-router 源码 手写vue-router
01-08
当使用 `Vue.use(VueRouter)` 时,Vue Router 会添加一些全局 Mixin,使得 Vue 实例可以响应路由变化。例如,`beforeRouteEnter`, `beforeRouteUpdate` 和 `beforeRouteLeave` 等生命周期钩子,这些钩子函数允许我们...
vue-router 源码之实现一个简单的 vue-router
12-29
通过上篇,我们知道前端理由的两种实现方法,Hash 路由与 History 路由,并且用它们分别实现了一个前端路由。 接下来我们就将 Vue 与 Hash 路由结合,实现一个非常简单的 vue-router 吧。 开始实现 想象一下,...
Vue Router 导航守卫快速了解与上手应用
你好呀,很高兴你在看这里~
07-26 632
一.简介与小案例:   在我们通过 vue-router 路由发生跳转时的,也可以用导航这一词概括。导航就是表示路由正在发生改变。而导航守卫就可以说成是监听这一改变。当路由跳转时不能直接跳转,会先经过导航守卫设定的条件,通过条件判断接下来该执行什么操作,给不给跳转,或者应该跳到哪里,或者其它操作。    先不谈 vue 提供的导航守卫,假如我们要自己实现 ‘守卫’ 该怎么实现呢?下面有一个小案例,快速了解 ‘守卫’ 概念。  1.首先新建了一个vue脚手架项目,并新建一个login.vue与user.vue
vue 路径@
qq_29236119的博客
01-14 178
1、@是webpack定义的别名,在js中可以使用,如下: import util from '@/assets/js/util' 注:import xxxxx是js语法,所以可以使用@别名 2、这个@是在webpack.base.config.js中配置的,如下: resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'vue$': 'vue/dist/胜利ue.esm.js', '@': resolve('sr
vue中引入路径@的用法
zszcc的博客
09-14 6310
一、Vue文件中引用路径的介绍 1、路径 ./ ./当前文件同级目录 2、路径 …/ …/当前文件上一级目录 3、@符号 @ 的作用是在你引入模块时,可以使用 @ 代替 /src 目录,避免易错的相对路径。 二、Vue中使用 1. vue.config.js配置文件中使用 chainWebpack(config) { config.resolve.alias .set('@', resolve('src')) .set('assets', resolve('s
Vue项目中使用@路径
热门推荐
Good Luck
06-10 9万+
第一步:安装一下path npm install path --save 第二步:在vue.config.js文件中配置一下
vue 如何配置@绝对路径
who_become_gods的博客
02-25 1万+
第一种:直接使用@ vue项目中默认定义了@(最常用)和vue$两个别名 , @这东西代表着到src这个文件夹的路径, 下面所属目录可以直接 @/views @/components @/store @/router @/assets ├── vue.config.js ├── package.json ├── babel.config.js ├── public └──index.html ├── src └── assets └── com
vue-routerrouter-view不能渲染的解决方法
08-30
例如,在创建 VueRouter 实例时,需要使用 const router = new VueRouter({ routes: routes });,而不是 const router = new VueRouter({ routers: routers });。 此外,开发者还需要确保在 components 中正确地...
详解Vue-Router源码分析路由实现原理
10-16
4. 将VueRouter实例注入到Vue根实例中,并挂载到DOM上。 `Vue.use(VueRouter)`方法在内部会调用VueRouter的`install`方法。这个方法负责在Vue实例上进行一系列操作: 1. 在Vue实例的`beforeCreate`生命周期钩子中...
vue配置@路径
qq_44161722的博客
10-12 909
第二步:在vue.config.js文件(如果没有就新建)中配置。第一步:安装path,如果node_module文件夹中有。
vue项目中 路径使用的@
weixin_44068394的博客
04-07 1384
@一般都是在路径访问中使用 我们在build/webpack.base.conf这个文件里面定义。 默认定义:@这东西代表着到src这个文件夹的路径 我们可以自己添加 (也可以作为一个小技巧使用) : ...
vue文件引入路径 ./ ../ @/ @xxx
xll0513的博客
04-13 1695
的作用是在你引入模块时,可以使用 @ 代替 /src 目录,避免易错的相对路径。(注意@不要用在引入css文件路径,有的项目规范不支持)// 在导入语句没带文件后缀时,webpack会自动按照顺序添加后缀名查找。vue在webpack.base.conf.js文件中有如下配置。// 将项目根目录中,src的路径配置为别名@例如:在路由index.js中,导入banana.vue。./当前文件同级目录, ./css/等同于css/../当前文件上一级目录。// 连接路径并返回。
Vue---在vue路径中@的使用
前端与计算机相关知识的分享,博主的qq523235674
02-19 2433
1.@表示项目文件夹src目录 'src/index.vue' 等价于 '@/index.vue' 2.如果在css代码中则需要在前面加~ 在css代码中 @import 'src/index.css'; 等价于 @import '~@/index.css';
vue路径中“@/“代表什么
wjw_de_java的博客
10-24 1041
路径中"@/"代表什么
如何在vue项目中配置引用路径“@”
m0_60692814的博客
09-11 1万+
配置引用路径(以@引用为项目的src目录为例)可拆分为如下两步操作 配置webpack打包时将@解析为项目的src目录 配置vsCode在路径中输入@时的路径提示 本贴着重讲解“配置webpack打包时将@解析为项目的src目录”的操作和溯源 操作 在项目根目录的vue.config.js文件中做如下配置 const path = require('path') module.exports = { configureWebpack: { resolve: {
简化文件、图片路径的方法,也就是vue中关于 '@/' 、 '~@/' 代表的含义
weixin_44514665的博客
06-05 6851
使用背景 在vue的项目中需要使用到 某一个路径的图片,但是用相对路径和绝对路径书写起来都会是很长的路径 例如: ./../../../static/img/my/icon4.png 甚至更长 这种情况下,想要我们的路径书写简短一点 就可以使用 ‘@/’ 、 ‘~@/’ 来表示前面部分的路径 ‘@/’ 也是相对路径 和 ‘./’ 意思差不多,具体表示什么路径需要看具体的@ 如何配置 首先需要现...
vue中引入路径@的用法及说明
最新发布
weixin_42508745的博客
01-30 1096
引用 https://blog.csdn.net/weixin_44836531/article/details/131061927。
Vue进阶:vue-router安装与基本使用指南
"Vue学习笔记进阶篇之vue-router安装及使用方法,介绍vue-router作为Vue.js官方的路由插件,用于构建单页面应用,通过路由和组件实现页面切换。安装vue-router需在项目目录中运行`npm install vue-router --save`。...
写文章

热门文章

  • 这30个CSS选择器,你必须熟记(上) 47633
  • 分享 100 道基础的前端面试题(附答案) 36204
  • 10个最常用的 VSCode 快捷键,提升你的编码速度 30810
  • Vue3.0+TS 项目上手教程 30214
  • JavaScript基础——回调(callback)是什么? 28298

最新评论

  • JavaScript对象转数组的三种简单方法

    深圳王哥: 这篇文章真是干货满满,作者对技术细节的把握和解析非常到位,让我对这个主题有了更深入的理解。期待作者能分享更多这样的高质量内容!

  • 一篇完整的 Scss 学习指南,看这篇就够啦

    叶460: 作者很强,我很佩服所写的文章,超级棒

  • 为什么有些前端专家们开始放弃TypeScript?

    vitenode: 微软老是想自己搞一个标准,老是想当规则的制定者,老版ie最终还不是走向灭亡

  • 探讨JavaScript闭包:10个实用场景解析

    m0_67200770: 场景6不对吧,连最基本的next方法 value done属性也没有,怎么叫 迭代器呢。。

  • 如何用JavaScript获取网页文档高度?

    代码与艺术: 文章内容丰富、实用性强,结构合理,语言流畅,代码清晰,思路清晰,图文并茂,详略得当,三连支持,期待博主持续输出好文

大家在看

  • 基于nodejs+vue基于Springboot的助学金管理系统设计与实现[开题+源码+程序+论文]计算机毕业设计
  • 基于nodejs+vue基于Springboot的中点游戏分享网站[开题+源码+程序+论文]计算机毕业设计
  • 基于nodejs+vue基于Springboot的专业技能认证系统[开题+源码+程序+论文]计算机毕业设计

最新文章

  • 前端问答:JavaScript 中的"??"和"||" 有啥不同
  • 前端问答:如何使用JavaScript计算两个日期之间的时间差
  • 字节又一爆款面试神器诞生了!
2024
09月 11篇
08月 69篇
07月 45篇
06月 38篇
05月 17篇
04月 18篇
03月 29篇
02月 24篇
01月 33篇
2023年458篇
2022年252篇
2021年447篇
2020年164篇
2019年115篇
2018年17篇
2017年24篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳坪山网站建设公司优化推广关键词优化网站优化沈阳正规的婚纱摄影网站优化优化网站排名品项云速捷热门西安seo网站优化规划长治网站优化网站优化 毕业设计濮阳五金行业网站优化推广方案无锡网站优化咨询融海科技江油网站搜索优化公司唐山网站改版优化邹平优化网站推广咸宁外包网站优化价格沛县网站推广优化壹起航如何做网站优化三水搜索引擎网站优化石首网站关键词优化网站优化 pdf崇州如何自己优化网站成都网站排名优化费用北京网站优化企业模板不能优化网站外贸网站优化怎么节省成本新民公司网站优化北京网站优化推广方案汉中网站优化外包株洲网站优化如何分析网站的优化邯郸网站优化费用多少广州网站优化公司平台学校网站的优化方案香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化