Vue封装公共组件TarBar
github:https://github.com/zwnsyw/TabBar
一、实现简单思路
1.在页面底部有一个单独的TabBar组件1.1自定义TabBar组件,在APP中使用1.2让TabBar出于底部,并设置相关的样式
2.TabBar中显示的内容由外界决定
2.1定义插槽
2.2flex布局平分TabBar
3.自定义TabBarItem,可以传入 图片和文字
3.1定义TabBarItem,并且定义两个插槽:图片、文字。
3.2给两个插槽外层包装div,用于设置样式。
3.3填充插槽,实现底部TabBar的效果
4.传入 高亮图片
4.1定义另外一个插槽,插入active-icon的数据
4.2定义一个变量isActive,通过v-show来决定是否显示对应的icon
5.TabBarItem绑定路由数据
5.1安装路由:npm install vue-router —save
5.2完成router/index.js的内容,以及创建对应的组件
5.3main.js中注册router
5.4APP中加入<router-view>组件
6.点击item跳转到对应路由,并且动态决定isActive
6.1监听item的点击,通过this.$router.replace()替换路由路径
6.2通过this.$route.path.indexOf(this.link) !== -1来判断是否是active
7.动态计算active样式
7.1封装新的计算属性:this.isActive ? {'color': 'red'} : {}
二、使用
1. App.vue里面引入MainTabBar
1.1在MainTabBar里面填充插槽
三、预览:

Vue封装公共组件TarBar的更多相关文章
- react初探(二)之父子组件通信、封装公共组件
一.前言 在组件方面react和Vue一样的,核心思想玩的就是组件,下面举两个组件常用的情景. 场景一:假如我们现在有一个页面包含表格以及多个弹框,这种时候如果将这个页面的业务代码写在一个组件中,那么 ...
- 基于Vue封装分页组件
使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} ...
- vue 封装分页组件
分页 一般都是调接口, 接口为这种格式 {code: 0, msg: "success",…} code:0 data:{ content:[{content: "11& ...
- echars vue 封装全局组件 曲线 柱状图 同v-chars绿色系 配置样式
Echars vue封装 ,曲线图 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- vue 封装自定义组件
组件结构 sjld >index.js >sjid.vue 最好单独放一个文件夹,有依赖的话装依赖 Sjld.vue 内容 <template id="sjld" ...
- vue封装分页组件
element提供的分页是已经封装好的组件,在这里再次封装是为了避免每个用到分页的页面点击跳转时都要写一遍跳转请求 分页组件 <!--分页组件--> <template> &l ...
- vue自定义公共组件components||在vue中,解决修改后的数据不能渲染到dom上的bug
//主页面框架用来嵌入:Main.vue <el-col :span="24" > * { margin: 0; padding: 0; } html { width: ...
- Vue 封装的组件生命周期钩子
export default { // ... // 在组件初始化时调用,可以简单理解为页面加载时 created () { // 存在 localStorage 的缓存内容 if (localSto ...
- vue 封装弹窗组件注意
父组件 <template> <div> <p @click="onDelete"> 打开 </p> <!-- 弹框 --&g ...
随机推荐
- 【python接口自动化】- openpyxl读取excel数据
前言:目前我们进行测试时用于存储测试数据的软件几乎都是excel,excel方便存储和管理数据,读取数据时也比较清晰,测试时我们需要从excel从读取测试数据,结束后还需把测试结果写入到excel中, ...
- Excel导出到DataSet
#region 导入excel 返回Dataset public DataSet ExecleDataSet(string filename, string file, string Type) { ...
- JavaScript事件坐标区别(offset,client,page)
学习笔记. 1. offset:其定位原点是当前元素左上角 2. client:其定位原点是当前窗口左上角 3. page:其定位原点是当前页面左上角 下面来验证一下. 先上代码: <!doct ...
- python基本数据类型:字符串及其方法(一)
大小写转换类 方法一:capitalize()首字母大写字符串 name='hatusne miku' name1=name.capitalize() print(name,name1) 方法二:ti ...
- 枚举 转化为可行性判定问题 网络流 poj3189
Steady Cow Assignment Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6914 Accepted: ...
- 【XSS-labs】Level 1-5
写在前面: 这个闯关游戏旨在理解XSS的原理并运用各种姿势绕过对于XSS攻击的过滤和限制. 这个练习只要弹出弹框即可过关 ,每一关我也会附上payload和源代码的解析 Level 1 观察源码 &l ...
- Jmeter基础-HTTP请求
启动Jmeter 打开jmeter/bin文件/jmeter.bat(Windows执行文件)文件,就可以启动jmeter了 1.创建测试计划 启动后默认有一个TestPlan(测试计划),可修改其名 ...
- c# 优化代码的一些规则——const 和 readonly[二]
前言 在c# 的世界中,在初学的时候,可能很难区分readonly 和 const,两者都是不可修改. 看到这两个单词,我们想的是,最多他们的区别也不会太大.然后事实却出乎我们的意料. 正文 这两个声 ...
- Spring_api方式实现aop
第一步: public interface UserService { public void add(); public void update(int a); public void delete ...
- pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值.