全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Vue.js:使用Vue-Router 2实现路由功能介绍

注意: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的介绍与引入功能详解  # 加载  # 如果没有  # 路由功能  # 的是  # 重定向  # 就会  # 都有  # 就像  # 首次  # 将会  # 则是  # 才会  # 当你  # 推荐使用  # 适用于  # 会把  # 不带  # 比较多  # 则为  # 绑定 


相关文章: 小程序网站制作需要准备什么资料,如何制作小程序?  建站之星导航菜单设置与功能模块配置全攻略  如何基于云服务器快速搭建网站及云盘系统?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  股票网站制作软件,网上股票怎么开户?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何在Windows虚拟主机上快速搭建网站?  高防服务器租用如何选择配置与防御等级?  制作公司内部网站有哪些,内网如何建网站?  广平建站公司哪家专业可靠?如何选择?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  如何高效利用200m空间完成建站?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  如何快速搭建自助建站会员专属系统?  建站主机选哪种环境更利于SEO优化?  如何在Windows环境下新建FTP站点并设置权限?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  建站之星如何实现PC+手机+微信网站五合一建站?  详解jQuery中基本的动画方法  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  如何在云服务器上快速搭建个人网站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  建站之星后台密码遗忘如何找回?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  开源网站制作软件,开源网站什么意思?  自助网站制作软件,个人如何自助建网站?  如何快速查询网站的真实建站时间?  建站之星安装后界面空白如何解决?  ,sp开头的版面叫什么?  如何将凡科建站内容保存为本地文件?  安云自助建站系统如何快速提升SEO排名?  如何在宝塔面板创建新站点?  魔方云NAT建站如何实现端口转发?  香港网站服务器数量如何影响SEO优化效果?  如何在橙子建站上传落地页?操作指南详解  高防服务器租用指南:配置选择与快速部署攻略  广东企业建站网站优化与SEO营销核心策略指南  建站之星如何配置系统实现高效建站?  建站之星后台管理:高效配置与模板优化提升用户体验  如何在阿里云部署织梦网站?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站之星Pro快速搭建教程:模板选择与功能配置指南  建站之星如何通过成品分离优化网站效率?  建站之星安装路径如何正确选择及配置?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  简历在线制作网站免费版,如何创建个人简历? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。