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

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

官方文档:

旧版:https://github.com/vuejs/vue-router/tree/1.0/docs/zh-cn

新版:http://router.vuejs.org/(2.0版本)

此文是旧版

文件结构图:

基本用法:

<router-view>是一个顶级的路由外链,用于渲染匹配的组件。

例如:我的应用入口是app.vue

那么在app.vue中添加如下代码, 此处涉及ES6,可以先看下这篇文章:http://www.csdn.net/article/2015-04-30/2824595-Modules-in-ES6

app.vue

Footer是一个公用的页脚组件,存放于components文件夹中

footer.vue

由于app.vue是最顶级的入口文件,在app.vue中引用footer组件的话,所有页面都会包含footer内容,但是二级页面等子页面不需要,所以得把app.vue中代码复制到index.vue中,把app.vue中footer相关的部分删掉。

在index.html中添加如下代码,创建一个路由实例。

在main.js中配置route.map

main.js

import Vue from 'vue'import VueRouter from 'vue-router'//导入vue-router//导入组件import App from './App'import Index from './page/index'import list from './page/list'import Home from './page/home'import Account from './page/account'Vue.use(VueRouter)var router = new VueRouter()router.map({    //默认指向index    '/':{        name:'index',        component:Index,        //子路由(有页底)        subRoutes:{            '/home':{                name:'home',                component:Home            },            '/account':{                name:'account',                component:Account            }        }    },    //没有footer    '/list':{        name:'list',        component:list    }})//启动一个启用了路由的应用router.start(App,'app')

router.start中的'app',指的是index中的:<app></app>,可以取其他的名字,但是得和index中的名字一致。

这时启动项目(npm run dev)会发现,页面上只有footer,而没有显示其他内容。因为index.vue本来就只有footer而没有其他内容,但是我们肯定要显示页面,就要用到

router.redirect(redirectMap)重定向

例如:我们要默认载入home页面

在main.js中加入

//重定向到homerouter.redirect({    '*':'home'})router.start(App,'app')

 在index中加入init()函数

然而,经过测试,redirect并没有重定向的home,载入home的真正原因是:router.go('/home')

此时,进入项目就会显示home页面的内容了。

路由规则和路由匹配

Vue-router 做路径匹配时支持动态片段、全匹配片段以及查询参数(片段指的是 URL 中的一部分)。对于解析过的路由,这些信息都可以通过路由上下文对象(从现在起,我们会称其为路由对象)访问。 在使用了 vue-router 的应用中,路由对象会被注入每个组件中,赋值为 this.$route ,并且当路由切换时,路由对象会被更新。

$route.path

字符串,等于当前路由对象的路径,会被解析为绝对路径,例如:/list,来源于route.map中配置的路径

router.map({   '/home':{    name:'list',    component:Home    } })

dom中

或者(具名路径)

带参数跳转(例如:从列表页跳转到列表详情页)

script。

Promise & ES6 详见vue-router的data部分: http://router.vuejs.org/zh-cn/pipeline/data.html

 详情页代码

{

{listDetail.title}}

阅读:{

{listDetail.viewTimes}}发布时间: {
{listDetail.publishTime | timer}}

{
{
{listDetail.content}}}

 此时router要做下修改

'/list':{    name:'list',    component:GetReceipt},'/listDetail/:id':{    name:'listDetail',    component:GetReceiptDetail}

 

转载于:https://www.cnblogs.com/jyichen/p/5660865.html

你可能感兴趣的文章
Nginx之5金钟罩 - (SSL)
查看>>
大数据在媒体行业的应用——《企业大数据实践路线》之二
查看>>
首次出手区块链创企,Facebook的区块链野望
查看>>
Dubbo 生态添新兵,Dubbo Admin 发布 v0.1
查看>>
结合P2P软件使用Ansible分发大文件
查看>>
12月18日云栖精选夜读 | Java 中创建对象的 5 种方式!
查看>>
Rethink Deepfakes,浅谈深度学习落地
查看>>
阿里云搭建的最好代刷网
查看>>
android.support.v7.widget.SearchView开发记录(一)
查看>>
想做一个合格的C语言程序员,从这篇文章开始
查看>>
confluence的初步认识和了解
查看>>
Python 成功上位,正逐渐与 Java 拉开差距
查看>>
分类模型的评价方法
查看>>
中后台管理系统 HeyUI Admin 发布
查看>>
Vant Weapp 0.5.5 发布,有赞小程序 UI 组件库
查看>>
Activiti 7.1.4 发布,业务流程管理与工作流系统
查看>>
小微企业阿里云最佳实践系列(一):ECS 服务器与 RDS 数据库
查看>>
ViewModelLocator
查看>>
SQL Server Replication的分发服务器的快照文件夹位置查找
查看>>
微服务系列-Spring Cloud优质项目推荐
查看>>