使用vue-router与v-if实现tab切换遇到的问题及解决方法


Posted in Javascript onSeptember 07, 2018

vue-router 该如何使用

忽然碰到一个常见的问题,明明可以使用 v-if / v-show 可以的解决的问题,有没有必要是使用 vue-router来解决。 比如常见的 tab 切换。一时间,我有些犹豫了,有没有必要滥用 vue-router。那到底何时用才叫合理呢?

先上代码,用两种方式实现的效果

使用vue-router

router

import Tab1 from './components/tab/TabOne'
import Tab2 from './components/tab/TabTwo'
import Tab3 from './components/tab/TabThree'
import Tab4 from './components/tab/TabFour'
const routes = [
 {path: '/tab1', component: Tab1},
 {path: '/tab2', component: Tab2},
 {path: '/tab3', component: Tab3},
 {path: '/tab4', component: Tab4},
]
const router = new VueRouter({
 routes
})

.vue 文件中

<div class="tab">
 <router-link to="/tab1">tab1</router-link>
 <router-link to="/tab2">tab2</router-link>
 <router-link to="/tab3">tab3</router-link>
 <router-link to="/tab4">tab4</router-link>
 <router-view></router-view>
</div>

使用 v-if/v-show

.vue

<div class="tab">
 <button @click="handleTab(1)">tab1</button>
 <button @click="handleTab(2)">tab2</button>
 <button @click="handleTab(3)">tab3</button>
 <button @click="handleTab(4)">tab4</button>
 <div v-if="isShow === 1"><Tab1 /></div>
 <div v-if="isShow === 2"><Tab2 /></div>
 <div v-if="isShow === 3"><Tab3 /></div>
 <div v-if="isShow === 4"><Tab4 /></div>
</div>
/**
 * script
 */
 data () {
  return {
   isShow: 1
  }
 },
 methods: {
  handleTab (v) {
   this.isShow = v
  }
 }

效果如下

使用vue-router与v-if实现tab切换遇到的问题及解决方法

  • 上方为路由
  • 下方为v-if

目前看起来效果一致。那就从另一个角度考虑,页面结构。

vue-router

使用vue-router与v-if实现tab切换遇到的问题及解决方法

v-if

使用vue-router与v-if实现tab切换遇到的问题及解决方法

总结:

  • 目前看起来,效果没有很大区别,代码量也没有减少
  • 使用原生,可能是用索引进行关联,在vue中推荐使用 数据进行驱动
  • 暂且记录一笔,以待后期继续研究

以上所述是小编给大家介绍的vue-router与v-if实现tab切换的思考,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
实例说明为什么不要行内使用javascript
Apr 18 Javascript
JS实现转动随机数抽奖特效代码
Apr 16 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
jQuery实现frame之间互通的方法
Jun 26 jQuery
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
js 计算图片内点个数的示例代码
Apr 04 Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 Javascript
Vue组件化开发之通用型弹出框的实现
Feb 28 Javascript
原生js实现碰撞检测
Mar 12 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
VUE DOM加载后执行自定义事件的方法
Sep 07 #Javascript
详解JavaScript事件循环机制
Sep 07 #Javascript
解决vue 引入子组件报错的问题
Sep 06 #Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 #Javascript
vue 解决循环引用组件报错的问题
Sep 06 #Javascript
vue slots 组件的组合/分发实例
Sep 06 #Javascript
React注册倒计时功能的实现
Sep 06 #Javascript
You might like
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
Python中的time模块与datetime模块用法总结
2016/06/30 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
Pycharm连接远程服务器过程图解
2020/04/30 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
Java面试题汇总
2015/12/06 面试题
中学生获奖感言
2014/02/04 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
花木兰观后感
2015/06/10 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL