Vue.js:使用Vue-Router 2实现路由功能介绍
发布时间 - 2026-01-10 23:13:16 点击率:次注意:vue-router 2只适用于Vue2.x版本,下面我们是基于vue2.0讲的如何使用vue-router 2实现路由功能。

推荐使用npm安装。
npm install vue-router
一、使用路由
在main.js中,需要明确安装路由功能:
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
Vue.use(VueRouter)
//1.定义组件,这里使用从其他文件import进来
import index from './components/index.vue'
import hello from './components/hello.vue'
//2.定义路由
const routes = [
{ path: '/index', component: index },
{ path: '/hello', component: hello },
]
//3. 创建 router 实例,然后传 `routes` 配置
const router = new VueRouter({
routes
})
//4. 创建和挂载根实例。通过 router 配置参数注入路由,从而让整个应用都有路由功能
const app = new Vue({
router,
render: h => h(App)
}).$mount('#app')
经过上面的配置之后呢,路由匹配到的组件将会渲染到App.vue里的<router-view></router-view>
那么这个App.vue里应该这样写:
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
index.html里呢要这样写:
<body> <div id="app"></div> </body>
这样就会把渲染出来的页面挂载到这个id为app的div里了。
二、重定向 redirect
const routes = [
{ path: '/', redirect: '/index'}, // 这样进/ 就会跳转到/index
{ path: '/index', component: index }
]
三、嵌套路由
const routes = [
{ path: '/index', component: index,
children: [
{ path: 'info', component: info}
] }
]
通过/index/info就可以访问到info组件了
四、懒加载
const routes = [
{ path: '/index', component: resolve => require(['./index.vue'], resolve) },
{ path: '/hello', component: resolve => require(['./hello.vue'], resolve) },
]
通过懒加载就不会一次性把所有组件都加载进来,而是当你访问到那个组件的时候才会加载那一个。对于组件比较多的应用会提高首次加载速度。
五、<router-link>
在vue-router 1中,使用的是<a v-link="{path:'/index'}"></a>
在vue-router 2中,使用了<router-link></router-link>替换1版本中的a标签
<!-- 字符串 -->
<router-link to="home">Home</router-link>
<!-- 渲染结果 -->
<a href="home" rel="external nofollow" >Home</a>
<!-- 使用 v-bind 的 JS 表达式 -->
<router-link v-bind:to="'home'">Home</router-link>
<!-- 不写 v-bind 也可以,就像绑定别的属性一样 -->
<router-link :to="'home'">Home</router-link>
<!-- 同上 -->
<router-link :to="{ path: 'home' }">Home</router-link>
<!-- 命名的路由 -->
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
<!-- 带查询参数,下面的结果为 /register?plan=private -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>
六、路由信息对象
1.$route.path
字符串,对应当前路由的路径,总是解析为绝对路径,如 "/foo/bar"。
2.$route.params
一个 key/value 对象,包含了 动态片段 和 全匹配片段,如果没有路由参数,就是一个空对象。
3.$route.query
一个 key/value 对象,表示 URL 查询参数。例如,对于路径 /foo?user=1,则有 $route.query.user == 1,如果没有查询参数,则是个空对象。
4.$route.hash
当前路由的 hash 值 (不带 #) ,如果没有 hash 值,则为空字符串。
5.$route.fullPath
完成解析后的 URL,包含查询参数和 hash 的完整路径。
6.$route.matched
一个数组,包含当前路由的所有嵌套路径片段的 路由记录 。路由记录就是 routes 配置数组中的对象副本(还有在 children 数组)。
综合上述,一个包含重定向、嵌套路由、懒加载的main.js如下:
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App'
Vue.use(VueRouter)
const router = new VueRouter({
routes:[
{ path: '/', redirect: '/index' },
{ path: '/index', component: resolve => require(['./components/index.vue'], resolve),
children:[
{ path: 'info', component: resolve => require(['./components/info.vue'], resolve) }
]
},
{ path: '/hello', component: resolve => require(['./components/hello.vue'], resolve) },
]
})
const app = new Vue({
router,
render: h => h(App)
}).$mount('#app')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# vue
# router
# 路由配置
# Vue-Router路由功能
# Vue-Router
# Vue Router路由守卫超详细介绍
# Vue Router路由hash模式与history模式详细介绍
# vue-router路由简单案例介绍
# Vue Router的介绍与引入功能详解
# 加载
# 如果没有
# 路由功能
# 的是
# 重定向
# 就会
# 都有
# 就像
# 首次
# 将会
# 则是
# 才会
# 当你
# 推荐使用
# 适用于
# 会把
# 不带
# 比较多
# 则为
# 绑定
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Android Socket接口实现即时通讯实例代码
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
如何基于云服务器快速搭建网站及云盘系统?
长沙企业网站制作哪家好,长沙水业集团官方网站?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
原生JS获取元素集合的子元素宽度实例
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
如何快速使用云服务器搭建个人网站?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
文字头像制作网站推荐软件,醒图能自动配文字吗?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何挑选最适合建站的高性能VPS主机?
昵图网官网入口 昵图网素材平台官方入口
Laravel如何使用Blade组件和插槽?(Component代码示例)
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
免费视频制作网站,更新又快又好的免费电影网站?
Python进程池调度策略_任务分发说明【指导】
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
如何在阿里云虚拟主机上快速搭建个人网站?
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
如何有效防御Web建站篡改攻击?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Swift中switch语句区间和元组模式匹配
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Laravel如何处理异常和错误?(Handler示例)
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
如何在IIS服务器上快速部署高效网站?
无锡营销型网站制作公司,无锡网选车牌流程?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
制作公司内部网站有哪些,内网如何建网站?
Laravel如何为API生成Swagger或OpenAPI文档
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
高端智能建站公司优选:品牌定制与SEO优化一站式服务
米侠浏览器网页背景异常怎么办 米侠显示修复
实例解析angularjs的filter过滤器
JavaScript如何操作视频_媒体API怎么控制播放
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
如何构建满足综合性能需求的优质建站方案?
创业网站制作流程,创业网站可靠吗?
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
如何快速搭建个人网站并优化SEO?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel如何使用模型观察者?(Observer代码示例)
如何注册花生壳免费域名并搭建个人网站?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

