VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建。html
项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送vue
后续VueRouter系列的文章的示例编写均基于该项目环境。webpack
VueRouter系列文章连接web
《VueRouter爬坑第一篇》-简单实践vue-router
《VueRouter爬坑第二篇》-动态路由vue-cli
《VueRouter爬坑第三篇》-嵌套路由npm
阅读目录api
一.安装VueRouter数组
1.npm 安装VueRouterruby
2.如何使用VueRouter
二.组件和路由之间的映射
1.<router-link>编写能够跳转的url
2.编写跳转的目的组件
3.定义路由
4.入口文件main.js配置路由
5.配置组件渲染的位置
三.总结
1.npm 安装VueRouter
安装命令:npm install vue-router
2.如何使用VueRouter
安装完成以后,须要有两个步骤才能使用
第一步:引入vue-router
第二步:将组件注册到全局(全局注册后,在别的组件中能够直接使用,无需单独引入)
这块先贴出步骤,暂时不写代码,后面作组件和路由映射的时候在把代码写上。
接着咱们的疑问就来了:页面中的一个URL如何匹配到咱们编写的组件?下面咱们就一步一步揭开这个疑惑。
关于router-link的官方文档说明可点击此处查看
关于上面的疑问,咱们第一步须要先编写一个能够跳转的URL。咱们先把项目中默认生成的HelloWorld.vue组件中div.hello中的内容删除,而后在加上咱们本身的内容。
E:\MyStudy\test\VueDemo\src\components\HelloWorld.vue
<template> <div class="hello"> <p>这里是HelloWorld组件</p> <!-- 使用<router-link>编写可跳转的URL --> <router-link to="/index">点击这里去另一个组件</router-link> </div> </template> // 后面的script和style没有修改,所以省略
web页面效果
<template> <div class="hello"> <p>这里是HelloWorld组件</p> <!-- 可跳转的URL --> <router-link to="/index">点击这里去另一个组件</router-link> </div> </template> // 后面的script和style没有修改,所以省
由于咱们要实现url跳转,所以须要编写一个跳转的目的组件。在这里咱们建立一个组件Index。
E:\MyStudy\test\VueDemo\src\components\Index.vue
<template> <div> <h1>这里是Index.vue组件</h1> </div> </template> <script> export default { name: 'Index' } </script>
如今可点击的URL准备好了,跳转的目标组件也准备好了。接下来就是定义路由配置:将URL映射到组件。
通常项目中为了后续好维护,会将路由配置单独写在一个文件中。所以咱们先在E:\MyStudy\test\VueDemo\src 目录下建立一个rotuer目录,在该目录下建立一个router.js文件,后面全部的路由配置均在该文件中编写。
建立路由配置文件
E:\MyStudy\test\VueDemo\src\router\router.js
// vue-router使用第一步:引入vue-router import Vue from "vue" import Router from "vue-router" // vue-router使用第二步:组件注册到全局 Vue.use(Router) // 第三步:定义路由配置 // 引入路由须要映射的组件 import Index from '@/components/Index.vue' const routes = [ { path: '/index', // 匹配的URL component: Index //映射的目标组件 } ] // 第四步:建立vue-router实例,传递前面定义的路由配置 const router = new Router({ routes: routes }) // 第五步:将vue-router实例使用export导出(供其余模块使用) export default router
步骤一和步骤二在前面咱们已经将过,步骤四和步骤五基本都是固定的配置不可缺乏。
第三个步骤中的routes就是称为路由配置,能够看到routes是一个数组,它能够包含多个字典对象。每个字典对象就是一条单个的路由。咱们写的这个路由只有最简单的两个配置项:path和component,注释中有说明这两个配置项的含义。
前面的三个部分完成后,还须要在入口文件处把这个路由实例注入到跟组件中,这样整个应用均可以拥有路由功能。
E:\MyStudy\test\VueDemo\src\main.js
// The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import App from './App' import router from './router' Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', components: { App }, template: '<App/>', //将路由实例注册到根组件中 router: router })
大功告成,咱们如今点击界面的连接试一下
在这里呢,卖了个关子少了一个步骤:没有告诉vue-router把匹配到的组件渲染到哪里。
<!-- 使用下面的这个标签能够告诉vue-router将匹配到的组件渲染到这个位置 --> <router-view> </router-view>
而后咱们将该段代码加入到HelloWorld.vue这个组件中。
E:\MyStudy\test\VueDemo\src\components\HelloWorld.vue
<template> <div class="hello"> <p>这里是HelloWorld组件</p> <!-- 可跳转的URL --> <router-link to="/index">点击这里去另一个组件</router-link> <!-- 使用下面的这个标签能够告诉vue-router将匹配到的组件渲染到这个位置 --> <router-view></router-view> </div> </template> // 后面的script和style没有修改,所以省略
如今咱们从新试一下效果
如今能够看到点击连接后界面发生了变化:
index.vue中的内容显示到了HelloWorld.vue中router-view配置的位置
url由localhost:8080/#/变为localhost:8080/#/index
至此,一个简单的url路由到组件的实例就完成了,如今总结一下前面梳理过的内容
1.须要使用npm安装vue-router。
注意:在使用veue init 初始化项目的时候会提示是否安装vue-router,若是选择是,那后续就不须要再次手动安装了。
2.可使用<router-link/>编写可跳转的url,并使用<router-view/>指定组件的渲染位置
3.建立Vue-Router实例,传入配置的路由:最简单的路由配置就是path和component