vue成长之路+实战+Vue2+VueRouter2+webpack(一)vue-router路由入门

推荐我的vue教程:VUE系列教程目录

前言

通过前面我写的VUE入门博客,相信已经大概了解VUE是何物,但是对于细节性的问题我们还是有些忽略,有很多网友希望我能继续写相关博客,但是由于工作繁忙原因一直无空去写,终于得空于是协知识归来。

2017年一定是VUE火热的一年,引得无数人飞蛾扑火,对于前端大神来说轻松入手,对于刚刚接触这一行的同学来说,vue的官方文档还是太过与欠缺信息,如此我决定带你们去踩坑。

对稍微了解VUE的人来说,我们都知道Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架。其采用自底向上增量开发的设计。如果你有用过Angular,知道它是MVC(模型 - 视图 - 控制器)结构的,而VUE 是MVVM的,即Vue 的核心库只关注视图层,视图依赖与数据,它不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与单文件组件和 Vue 生态系统支持的库结合使用时,Vue 也完全能够为复杂的(SPA)单页应用程序提供驱动。

但是这只是定义,有些人连SPA是什么都不知道(SPA-单页应用),更不知道MVVM是为何物?请准备好你的双手

打开项目

VUE是有一个配套开发组件的他叫:element(饿了么组件),如图:

vue成长之路+实战+Vue2+VueRouter2+webpack(一)vue-router路由入门_第1张图片

为了方便大家跟上我,我决定做一个初始模板放在github上,各位请使用git拉一下项目:vuetemplate,如果有不知道git怎么用的请看我的博客:git+github的使用-最简单的入门教程

如果实在是不知道git怎么用我会贴出代码,但是前提是你有信心解决那些问题。

我们用的编辑器是atom,怎么使用请看: 打造前端MAC工作站(四)配置 Atom 编辑器

重要的事情说三遍:这里不负责解决任何代码之外的事情,但是还是好意给你们指条明路!
这里不负责解决任何代码之外的事情,但是还是好意给你们指条明路!
这里不负责解决任何代码之外的事情,但是还是好意给你们指条明路!

使用git拉下来我的代码,用atom打开目录如图:

vue成长之路+实战+Vue2+VueRouter2+webpack(一)vue-router路由入门_第2张图片

不会使用git拉文件的请去GitHub上下载压缩包。

在本地打开文件夹,先npm install,然后npm run dev,让它跑起来。效果如图:

vue成长之路+实战+Vue2+VueRouter2+webpack(一)vue-router路由入门_第3张图片

注意如果npm安装不合适请使用cnpm,见淘宝镜像

这里做了一个假的登陆,输入yanmo,密码:123,进入。这个项目整个构建都是完整,你们如果初入门就多看看我的目录结构构建,以及路由的使用。

路由简单使用

打开vue官网给的教程:vue-router

vue官网所给的路由使用很初级,我们在项目构建的时候并不会这样子,打开项目/src/routes/index.js,代码如下:

import frame from '../frame/frame.vue'
import index from '../page/index.vue'
import home from '../page/home.vue'
import login from '../page/login.vue'

import introduction from '../page/introduction/index.vue'
import introductionDetails from '../page/introduction/details.vue'

import introductionDetailspage from '../page/introduction/detailspage/detailspage.vue'

import advanced from '../page/advanced/index.vue'
import advancedDetails from '../page/advanced/details.vue'

import advancedDetailspage from '../page/advanced/detailspage/detailspage.vue'

// 配置路由
export default [
  {
    path: '/',
    component: index
  },
  {
    path: '/login',
    component: login
  },
  {
    path: '/home',
    component: home
  },
  {
    path: '/introduction',
    component: frame,
    children: [
      {path: '', component: introduction},
      {path: 'details', component: introductionDetails},
      {path: 'detailspage', component: introductionDetailspage}
    ]
  },
  {
    path: '/advanced',
    component: frame,
    children: [
      {path: '', component: advanced},
      {path: 'details', component: advancedDetails},
      {path: 'detailspage', component: advancedDetailspage}
    ]
  }
]

这是正确的路由构建方式,我们通过import…form导入我们的文件模块,component(组件)引入我们需要的模块,path则是网页上的url,同时路由的使用离不开,在/src/App.vue中: