yb课堂 前端项目通用底部选项卡 CommonsFooter 《三十六》
学会看cube-UI文档,并掌握cube-tab-bar开发
前端需求分析
- 底部导航
- 首页Banner
- 首页视频列表
- 视频详情模块
- 注册模块
- 登陆模块
- 个人信息模块
- 下单模块
- 订单列表模块
文档地址:https://didi.github.io/cube-ui/#/zh-CN/docs/quick-start
template开发
在components下创建CommonFooter.vue
<template>
<div class="tab">
<cube-tab-bar v-model="selectedLabelSlots" @click="changHandler">
<cube-tab
v-for="(item) in tabs"
:icon="item.icon"
:label="item.label"
:key="item.path"
:value="item.path"
></cube-tab>
</cube-tab-bar>
</div>
</template>
<script>
export default {
data() {
return {
selectedLabelSlots: "/",
tabs: [
{
label: "首页",
icon: "cubeic-home",
path: "/"
},
{
label: "我的订单",
icon: "cubeic-like",
path: "/order"
},
{
label: "个人中心",
icon: "cubeic-person",
path: "/personal"
}
]
};
}
};
</script>
vue-router常见API
- router.path:获取当前的路由
- router.go(n):这个方法的参数是一个整数,表示在history记录中向前或者后退多少步,类似window.history.go(n)方法
- router.push(path):导航到不同的path路径,这个方法会向history栈添加一个新的记录,所以当前用户点击浏览器后退按钮时,则回到之前的URL
完整CommonFooter.vue
<template>
<div class="tab">
<cube-tab-bar v-model="selectedLabelSlots" @click="changHandler">
<cube-tab
v-for="(item) in tabs"
:icon="item.icon"
:label="item.label"
:key="item.path"
:value="item.path"
></cube-tab>
</cube-tab-bar>
</div>
</template>
<script>
export default {
data() {
return {
selectedLabelSlots: "/",
tabs: [
{
label: "首页",
icon: "cubeic-home",
path: "/"
},
{
label: "我的订单",
icon: "cubeic-like",
path: "/order"
},
{
label: "个人中心",
icon: "cubeic-person",
path: "/personal"
}
]
};
},
methods: {
changHandler(path) {
//this.this.$route.path:当前路径
if (path !== this.this.$route.path) {
this.$routerouter.push(path);
}
}
},
created() {
//默认路由选择器,比如刷新页面,需要重新进到当前路由
this.selectedLabelSlots = this.this.$route.path;
}
};
</script>
<!--SCSS是⼀种CSS预处理语⾔, scoped 是指这个scss样式 只作⽤于当前组件-->
<style lang="scss" scoped>
.tab {
position: fixed;
bottom: 0;
z-index: 999;
background-color: #fff;
width: 100%;
border-top: 1px solid rgba($color: #000000, $alpha: 0.1);
}
.cube-tab_active {
color: #3bb149;
}
</style>
yb课堂 前端项目通用底部选项卡 CommonsFooter 《三十六》的更多相关文章
- 前端项目通用、常用js common.js
var url = location.href; if (url.toLowerCase().indexOf("/akweb_admin/") == -1) { function ...
- 潭州课堂25班:Ph201805201 django 项目 第三十六课 后台文章管理(课堂笔记)
get 请求, 1,获取文章标签 , 2,拿到前台传来的值, 3,根据前台传来的值在数据库中查询 4.,返回数据到前台,渲染, 分页算法 : 在 utils 下创建 paginator_script ...
- AngularJS进阶(三十六)AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记)
AngularJS项目开发技巧之利用Service&Promise&Resolve解决图片预加载问题(后记) 前言 在"AngularJS项目开发技巧之图片预加载" ...
- 前端学习(三十六)promise(笔记)
一个页面: 头部.用户信息.新闻列表 jquery ajax: 1.$.ajax({ url:'', dataType:'json', }).then(res=>{ //r ...
- Android项目实战(三十六):给背景加上阴影效果
圆角背景大家应该经常用: 一个drawable资源文件 里面控制corner圆角 和solid填充色 <shape xmlns:android="http://schemas.and ...
- Web项目Shiro总结及源码(十六)
shiro过虑器 过滤器简称 对应的java类 anon org.apache.shiro.web.filter.authc.AnonymousFilter authc org.apache.shir ...
- 我在一个前端项目中用js整理的一些通用方法,其中使用到的思想,主要就是约定了。
把名称和后台来的json数据约定起来,可以达到的效果就是可以将东西统一化,减少差异,提升模块等的通用性,此后就可以实现具体不同模块内容可以自动或拷贝赋值的方式 2016.7.18 refactor s ...
- HTML5 开发APP(头部和底部选项卡)
我们开发app有一定固定的样式,比如头部和底部选项卡部分就是公共部分就比如我在做的app进来的主页面就像图片显示的那样 我们该怎么实现呢,实现我们应该建一个主页面index.html,然后建五个子页面 ...
- TabBottomFragmentLayout【自定义底部选项卡区域(搭配Fragment)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 自定义底部选项卡布局LinearLayout类,然后配合Fragment,实现切换Fragment功能. 缺点: 1.底部选项卡区域 ...
- FragmentTabHostBottomDemo【FragmentTabHost + Fragment实现底部选项卡】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用FragmentTabHost实现底部选项卡效果. 备注:该Demo主要是演示FragmentTabHost的一些设置和部分功能 ...
随机推荐
- 🔥httpsok彻底告别SSL证书续期烦扰
httpsok彻底告别SSL证书续期烦扰 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx .OpenResty 服务器设计.已服务众多中小企业,稳定.安全.可靠. ...
- cesium教程5-用primitive加载glb和gltf格式的小模型
primitive加载方法更底层,用起来更麻烦,但是效率更高. 完整示例代码: <!DOCTYPE html> <html lang="en"> <h ...
- PageOffice在线打开 word 文件,并且禁止复制
在线打开 word 禁用拷贝的三种方式: 1 使用 AllowCopy 属性,效果:所有的 word 进程都不能进行拷贝操作 2 禁止 word 选择功能,效果:因为无法选择,所以无法拷贝 3 使用 ...
- 如何使用 JS 判断用户是否处于活跃状态
有时候,我们需要在网页判断用户是否处与非活跃状态,如果用户长时间没有在页面上进行任何操作,我们则判定该用户是非活跃的. 在 javascript 中我们可以通过监听某些鼠标或键盘相关的事件来判定用户是 ...
- Spring 对于事务上的应用的详细说明
1. Spring 对于事务上的应用的详细说明 @ 目录 1. Spring 对于事务上的应用的详细说明 每博一文案 2. 事务概述 3. 引入事务场景 3.1 第一步:准备数据库表 3.2 第二步: ...
- 多线程池Flask实战应用
多线程池Flask实战应用 import json import time import flask from concurrent.futures import ThreadPoolExecutor ...
- 经验分享之会员 SaaS 系统
经验分享之会员 SaaS 系统 一.前言 2018年,这是不平凡的一年:互联网行业的中台战略.会员经济等模式如火如荼,同时也逐渐地走入我们公司每个人的视野.在南海集团的战略规划背景下,当时我所在的公司 ...
- .net Core中实现SHA加密
#region 用SHA1加密字符串 /// <summary> /// 用SHA1加密字符串 /// </summary> /// <param name=" ...
- 理解太阳辐射 DNI DHI GHI
理解太阳辐射 DNI DHI GHI DNI: Direct Normal Irradiance 阳光从太阳盘面直接照射到与光路正交的表面,称作直接辐射简写为 DNI. DHI: Diffuse ...
- Understanding Swift’s value type thread safety - 代码分析(一)
结构体并不代表线程安全,swift在此上未做保证 func testScenarioA() throws { var store: Int = 0 DispatchQueue.concurrentPe ...