vue-router实现tab标签页(单页面)详解


Posted in Javascript onOctober 17, 2017

vue-router 是 Vue.js 官方的路由插件,适合用于构建标签页应用。Vue 的标签页应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来,vue-router 会把各个组件渲染到正确的地方。

首先,.vue中的内容非常简单,<router-link>创建标签,并指定路径,<router-view>渲染路由匹配到的组件。

<template> 
 <div id="account"> 
 <p class="tab"> 
 <!-- 使用 router-link 组件来导航. --> 
 <!-- 通过传入 `to` 属性指定链接. --> 
 <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 --> 
 <router-link to="/account/course">我的课程</router-link> 
 <!-- 注意这里的路径,course和order是account的子路由 --> 
 <router-link to="/account/order">我的订单</router-link> 
 </p> 
 <!-- 路由出口 --> 
 <!-- 路由匹配到的组件将渲染在这里 --> 
 <router-view></router-view> 
 </div> 
</template>

结构很简单,我们有一个账户页 account,account 中还包含两个标签页,分别是课程 course 和订单 order。
在写路由的时候,需要注意页面间层级关系,开始我是这样写的:

import Vue from 'vue' 
import Router from 'vue-router' 
import Account from ... 
import CourseList from ... 
import OrderList from ... 
 
Vue.use(Router) 
 
export default new Router({ 
 routes: [ 
 { 
 path: '/account', 
 name: 'account', 
 component: Account 
 }, 
 { 
 path: '/my-course', 
 name: 'course', 
 component: CourseList 
 }, 
 { 
 path: '/my-order', 
 name: 'order', 
 component: OrderList 
 } 
 ] 
})

这样做会使得点击 <router-link> 时,跳转到新页面,而不是在 <router-view> 中显示组件。
正确的路由应该这样写:

routes: [ 
 { 
 path: '/account', 
 name: 'account', 
 component: Account, 
 children: [ 
 {name: 'course', path: 'course', component: CourseList}, 
 {name: 'order', path: 'order', component: OrderList} 
 ] 
 } 
]

注册一个根路由 account,将 course 和 order 注册为 account 中的子路由,和 <router-link> 中 to="account/course" 对应。 

刚开始做 Vue,这个问题困扰了很久,特此记录。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程、Vue.js前端组件学习教程,进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery 学习笔记 选择器之一
Jul 23 Javascript
jQuery获取css z-index在各种浏览器中的返回值
Sep 15 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
Dec 12 Javascript
js实现同一页面多个运动效果的方法
Apr 10 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
May 01 Javascript
jQuery实现html表格动态添加新行的方法
May 28 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
js实现手机web图片左右滑动效果
Dec 29 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
5个你不知道的JavaScript字符串处理库(小结)
Jun 01 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
Sep 02 Javascript
BACKBONE.JS 简单入门范例
Oct 17 #Javascript
JS获取一个表单字段中多条数据并转化为json格式
Oct 17 #Javascript
JS解决position:sticky的兼容性问题的方法
Oct 17 #Javascript
JS实现div模块的截图并下载功能
Oct 17 #Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
Oct 17 #Javascript
AngularJS 控制器 controller的详解
Oct 17 #Javascript
VUE前端cookie简单操作
Oct 17 #Javascript
You might like
PHP二维数组的去重问题解析
2011/07/17 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
PHP简单日历实现方法
2016/07/20 PHP
CI框架附属类用法分析
2018/12/26 PHP
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
Jquery动态添加输入框的方法
2015/05/29 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
BootStrap中
2016/12/10 Javascript
setTimeout学习小结
2017/02/08 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
python计算对角线有理函数插值的方法
2015/05/07 Python
Python时间获取及转换知识汇总
2017/01/11 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
毕业学生推荐信
2013/12/01 职场文书
期中考试后的反思
2014/02/08 职场文书
干部作风建设心得体会
2014/10/22 职场文书
项目负责人岗位职责
2015/02/15 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python