使用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 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
JQuery jsonp 使用示例代码
Aug 12 Javascript
JavaScript与DropDownList 区别分析
Jan 01 Javascript
Node.js 的异步 IO 性能探讨
Oct 08 Javascript
js拖拽的原型声明和用法总结
Apr 04 Javascript
原生js实现查询天气小应用
Dec 09 Javascript
Web纯前端“旭日图”实现元素周期表
Mar 10 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
JS实现二维数组横纵列转置的方法
Apr 17 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
Vue自动构建发布脚本的方法示例
Jul 24 Javascript
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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
php获取域名的google收录示例
2014/03/24 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
javascript的内存管理详解
2013/08/07 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
Python 解析XML文件
2009/04/15 Python
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
Python正则简单实例分析
2017/03/21 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
python动态进度条的实现代码
2019/07/03 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
往来会计岗位职责
2013/12/19 职场文书
经典洗发水广告词
2014/03/13 职场文书
教师评语大全
2014/04/28 职场文书
学校校庆演讲稿
2014/05/22 职场文书
联片教研活动总结
2014/07/01 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
解除劳动合同证明书
2014/09/26 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
旅游项目合作意向书
2015/05/08 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书