博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue实践02之vue-router
阅读量:6861 次
发布时间:2019-06-26

本文共 2817 字,大约阅读时间需要 9 分钟。

本文主要参考技术胖老师的视频教程。

简介

由于Vue在开发时对路由支持的不足,后来官方补充了vue-router插件,它在Vue的生态环境中非常重要,在实际开发中只要编写一个页面就会操作vue-router。要学习vue-router就要先知道这里的路由是什么?这里的路由并不是指我们平时所说的硬件路由器,这里的路由就是SPA(单页应用)的路径管理器。再通俗的说,vue-router就是我们WebApp的链接路径管理系统。

有的小伙伴会有疑虑,为什么我们不能像原来一样直接用<a></a>标签编写链接哪?因为我们用Vue作的都是单页应用,就相当于只有一个主的index.html页面,所以你写的<a></a>标签是不起作用的,你必须使用vue-router来进行管理。

解读router/index.js文件

我们用vue-cli生产了我们的项目结构,你可以在src/router/index.js文件,这个文件就是路由的核心文件,我们先解读一下它。

import Vue from 'vue'   //引入Vueimport Router from 'vue-router'  //引入vue-routerimport Hello from '@/components/Hello'  //引入根目录下的Hello.vue组件 Vue.use(Router)  //Vue全局使用Router export default new Router({  routes: [              //配置路由,这里是个数组    {                    //每一个链接都是一个对象      path: '/',         //链接路径      name: 'Hello',     //路由名称,      component: Hello   //对应的组件模板    }  ]})复制代码

增加一个Hi的路由和页面

对路由的核心文件熟悉后,我们试着增加一个路由配置,我们希望在地址栏输入 http://localhost:8080/#/hi 的时候出现一个新的页面,先来看一下我们希望得到的效果。

具体操作步骤如下:

  • 在src/components目录下,新建 Hi.vue 文件。
  • 编写文件内容,和我们之前讲过的一样,文件要包括三个部分<template><script>和<style>。文件很简单,只是打印一句话。
复制代码
  • 引入 Hi组件:我们在router/index.js文件的上边引入Hi组件 import Hi from '@/components/Hi'
  • 增加路由配置:在router/index.js文件的routes[]数组中,新增加一个对象,代码如下。
{  path:'/hi',  name:'Hi',  component:Hi}复制代码

router-link制作导航

现在通过在地址栏改变字符串地址,已经可以实现页面内容的变化了。这并不满足需求,我们需要的是在页面上有个像样的导航链接,我们只要点击就可以实现页面内容的变化。制作链接需要<router-link>标签,我们先来看一下它的语法。 <router-link to="/">[显示字段]</router-link>

子路由

改造App.vue的导航代码

App.vue代码,注意<route-view>的用法。

复制代码

改写components/Hi.vue页面

把Hi.vue改成一个通用的模板,加入标签,给子模板提供插入位置。“Hi页面1” 和 “Hi页面2” 都相当于“Hi页面”的子页面,有点想继承关系。我们在“Hi页面”里加入标签。

Hi1.vue

复制代码

Hi2.vue

复制代码

Hi.vue代码

注意新增的router-view

复制代码

修改router/index.js代码

我们现在导航有了,母模板和子模板也有了,只要改变我们的路由配置文件就可以了。子路由的写法是在原有的路由配置下加入children字段。

children:[{path:'/',component:xxx},{path:'xx',component:xxx},]复制代码

children字段后边跟的是个数组,数组里和其他配置路由基本相同,需要配置path和component。具体看一下这个子路由的配置写法。

import Vue from 'vue'   import Router from 'vue-router'  import Hello from '@/components/Hello'  import Hi from '@/components/Hi' import Hi1 from '@/components/Hi1' import Hi2 from '@/components/Hi2'  Vue.use(Router)  export default new Router({  routes: [                 {                          path: '/',              name: 'Hello',           component: Hello       },{      path:'/hi',      component:Hi,      children:[        {path:'/',component:Hi},        {path:'hi1',component:Hi1},        {path:'hi2',component:Hi2},      ]    }  ]})复制代码

参考链接

转载地址:http://tnxyl.baihongyu.com/

你可能感兴趣的文章
简单了解JS中的几种遍历
查看>>
少走弯路的10条忠告
查看>>
一个多maven项目聚合的实例
查看>>
Mac终端解压命令集合
查看>>
事务日志已满,原因为“ACTIVE_TRANSACTION”
查看>>
linux 按照端口一句命令杀死进程,按照进程名称一句命令杀死进程
查看>>
The last packet sent successfully to the server was 0 milliseconds ago.[nutch---mysql ]
查看>>
win10初期版本administrator的限制
查看>>
使用LVS实现负载均衡原理及安装配置详解
查看>>
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
查看>>
linux异步IO--aio
查看>>
Installing Hyperledger Fabric v1.1 on Ubuntu 16.04 — Part I
查看>>
sql--CONVERT、FOR XML PATH解决实际问题
查看>>
WPF - 模板查看工具:Show Me The Template及如何查看第三方主题
查看>>
Unix lrzsz命令 上传本地文件到服务器 / 发送文件到客户端
查看>>
JQuery -- this 和 $(this) 的区别
查看>>
PostgreSQL 连接问题 FATAL: no pg_hba.conf entry for host
查看>>
Android 6.0运行时权限第三方库的使用-----RxPermissions
查看>>
leetcode 100. Same Tree
查看>>
搜狗拼音输入法 V9.1.0.2589 最新去广告精简优化版
查看>>