一.新建3个组件

1./src/components/post.vue

<template>
<div>
hello world! this is POST!
</div>
</template> <script>
export default { }
</script>

  

2./src/components/view.vue

<template>
<div>
hello world! this is VIEW!
</div>
</template> <script>
export default { }
</script>

  

3./src/components/vote.vue

<template>
<div>
hello world! this is VOTE!
</div>
</template> <script>
export default { }
</script>

  

 

二.路由

1.入口文件main.js,导入路由

import router from './router'

  

可以看到router是从router这个文件夹中引入的

2.打开router文件夹下的index.js,加入两个路由post和view

import Vue from 'vue'
import Router from 'vue-router'
import post from '@/components/post'
import view from '@/components/view' // 注册路由
Vue.use(Router) export default new Router({
mode: 'history',
routes: [
{ path: 'post', name: 'post', component: post },
{ path: 'view', name: 'view', component: view }
]
})

  

PS:mode有三种模式
(1).hash模式:使用URL hash值来作为路由。支持所有浏览器。默认,这会在地址栏中出现#
(2).history模式:依赖HTML5 History API和服务器配置。查看HTML5 History模式。
(3).abstract模式:支持所有JavaScript运行环境,如Node.js服务器端。如果发现没有浏览器的API,路由会自动强制进入这个模式。

三.使用路由

1.app.vue中写入

<template>
<div id="app">
<img src="./assets/logo.png">
<router-link :to="/post">post</router-link>
<router-link :to="{ name: 'view', params: {} }">view</router-link>
<router-view></router-view>
</div>
</template> <script>
export default {}
</script>

  

2.解释点:

(1)router-link
a.router-link是一个组件,它默认会被渲染成一个带有链接的a标签,通过to属性指定链接地址
b.to:这是一个必须设置的属性,否则路由无法生效。除了使用name,也可以是用path
<router-link to="/post">post</router-link>
c.replace
一个布尔类型,默认为false。如果replace设置为true,那么导航不会留下history记录,点击浏览器回退按钮不会再回到这个路由。
d.tag
router-link默认渲染成a标签,也有方法让它渲染成其他标签,tag属性就用来设置router-link渲染成什么标签的。

(2).router-view
这个组件十分关键,它就是用来渲染匹配到的路由的。可以附加transition过渡,也可以配合<keep-alive>来缓存数据.

四.动态路由(携带参数的路由)

1.使用路由命名name
(1).修改view组件:

<template>
<div>
hello world! this is VIEW! {{ $route.params.id }}
</div>
</template> <script>
export default { }
</script>

  

(2).修改App.vue

<router-link :to="{ name: 'view', params: {id: 10} }">view</router-link>

  

2.使用路由path

(1).修改router下的index.js

{ path: '/view/:id', name: 'view', component: view }

  

(2).修改App.vue

<router-link to="/view/10">view</router-link>

  

(3).修改view.vue

<template>
<div>
hello world! this is VIEW! {{ $route.params.id }}
</div>
</template> <script>
export default { }
</script>

  

五.嵌套路由(在组件中使用路由)

我们实现在view组件中包含post组件和vote组件

1.改写App.vue

<template>
<div id="app">
<img src="./assets/logo.png">
<router-link :to="{ name: 'post', params: {} }">post</router-link>
<router-link :to="{ name: 'view', params: {} }">view</router-link>
<router-view></router-view>
</div>
</template> <script>
export default {}
</script>

  

2.改写router/index.js

export default new Router({
mode: 'history',
routes: [
{
path: '/view',
name: 'view',
component: view,
children: [
{ path: '/post', name: 'post', component: post },
{ path: '/vote', name: 'vote', component: vote }
]
}
]
})

  

3.改写view.vue

<template>
<div>
<router-link :to="{ name: 'post', params: {} }">post</router-link>
<router-link :to="{ name: 'vote', params: {} }">vote</router-link>
<router-view></router-view>
</div>
</template> <script>
export default { }
</script>

  

六.导航式编程router.push()

点击router-link时执行的就是router.push()的方法,我们可以单独给它一个点击事件,同样可以实现跳转

<template>
<div id="app">
<img src="./assets/logo.png">
<router-link :to="{ name: 'post', params: {} }">post</router-link>
<router-link :to="{ name: 'view', params: {} }">view</router-link>
<button @click="goView">跳转</button>
<router-view></router-view>
</div>
</template> <script>
export default {
methods: {
goView () {
this.$router.push('/view')
}
}
}
</script>

  

Vue-router(vue2.0)用法示例的更多相关文章

  1. vue 专题 vue2.0各大前端移动端ui框架组件展示

    Vue 专题 一个数据驱动的组件,为现代化的 Web 界面而生.具有可扩展的数据绑定机制,原生对象即模型,简洁明了的 API 组件化 UI 构建 多个轻量库搭配使用 请访问链接: https://ww ...

  2. vue2.0用法以及环境配置

    一.配置环境搭建 1.安装node.js (可以去官网看) 2.安装git (推荐看廖雪峰文章,点击查看) 3.安装vue: cmd:npm install vue //最新稳定版本 npm inst ...

  3. vue DatePicker vue2.0的日期插件

    一个用vue2.0写的日期控件,可以支持简单的年月日选择.地址:https://github.com/Stevenzwzhai/vue-datepicker. 首先是关于日期对象的使用,基本就是日期的 ...

  4. vue2.0用法技巧汇总

    1.class拼接: 2.select下拉截取: <template> <!--vip班支付报名页面--> <div id="payRecordMain&quo ...

  5. Vue:Vue2.0搭建脚手架

    随着Vue.js越来越火爆,更多的项目都用到Vue进行开发,在实际的开发项目中如何搭建脚手架呢?今天就来跟大家分享一下如何使用vue-cli搭建脚手架. 一.安装node.js 1.进入官网https ...

  6. vue2.0 vs vue

    vue2.0相比vue1.0 有哪些改变,今天总结了一下 vue2.0组件中 template 不在支持代码片段 //vue1.0组件中template写法 <template> < ...

  7. 【转】Vue.js 2.0 快速上手精华梳理

    Vue.js 2.0 快速上手精华梳理 Sandy 发掘代码技巧:公众号:daimajiqiao 自从Vue2.0发布后,Vue就成了前端领域的热门话题,github也突破了三万的star,那么对于新 ...

  8. Vue技术点整理-Vue Router

    路由 Vue Router 对于单页面应用来说,如果涉及到多个页面的话,就必须要使用到路由,一般使用官方支持的 vue-router 库 一,Vue Router 在项目中的安装引用 1,在页面中使用 ...

  9. 用webpack2.0构建vue2.0超详细精简版

    初始化环境 npm init -y 初始化项目 安装各种依赖项 npm install --save vue 安装vue2.0 npm install --save-dev webpack@^2.1. ...

随机推荐

  1. 洛谷T8116 密码

    T8116 密码 题目描述 YJC把核弹发射密码忘掉了……其实是密码被加密了,但是YJC不会解密.密码由n个数字组成,第i个数字被加密成了如下形式:第k小的满足(2^L)|(P-1)且P为质数的P.Y ...

  2. SQL Server 及 Visual Studio的离线帮助文档

    1>Sql Server帮助文档下载:地址 2>Visual Studion帮助文档下载:地址 3>安装Help Viewer 4>浏览到刚才下载的文件处进行安装 4>设 ...

  3. Linux Mint---shutter截图软件

    shutter 可以说是linux下最好的截图软件了,默认安装好后不能编辑截图,解决方法如下: 1-关闭shutter 2-sudo apt-get install shutter libgoo-ca ...

  4. git代码仓库迁移(从github到oschina)【转】

    转自:http://blog.csdn.net/a5244491/article/details/44807937 版权声明:本文为博主原创文章,未经博主允许不得转载. 因为一些特殊原因,需要将公司原 ...

  5. (二十四)linux新定时器:timefd及相关操作函数

    timerfd是Linux为用户程序提供的一个定时器接口.这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景. 一,相关操作函数 #inclu ...

  6. localhost、127.0.0.1和本机IP

    localhost 是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0.1(ipv4)和 [::1](ipv6) 整个127.* 网段通常被用作 loopbac ...

  7. Couchbase应用示例(初探)

    安装过程:略. 1. 新建Web项目 从NuGet获取并引用: CouchbaseNetClient,添加后引用列表显示为 : Couchbase.NetClient 2. 需要对项目添加引用,这里我 ...

  8. 使用windos电脑模拟搭建集群(三)实现全网监控

    这里我们采用小米监控 open-falcon  这是server端就是 192.168.5.200 这台主机, agent就是负责将数据提交到 server端       agent整个集群所有主机都 ...

  9. bootstrap只有遮罩层没有对话框的解决方法

    前端很差很差,猜测应该是各种js冲突的问题,换了一个jquery或bootstrap版本的不兼容. https://blog.csdn.net/Pabebe/article/details/70230 ...

  10. 洛谷 P1049 装箱问题【正难则反/01背包】

    题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩余 ...