使用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 相关文章推荐
很棒的学习jQuery的12个网站推荐
Apr 28 Javascript
使用jQuery清空file文件域的解决方案
Apr 12 Javascript
js实现右键自定义菜单
Dec 03 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
详解vue中async-await的使用误区
Dec 05 Javascript
js中arguments对象的深入理解
May 14 Javascript
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
如何使用vue slot创建一个模态框的实例代码
May 24 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
Jul 28 Javascript
vue v-model的用法解析
Oct 19 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
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
JS实现仿新浪黄色经典滑动门效果代码
2015/09/27 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
Vue表单实例代码
2016/09/05 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
使用PYTHON创建XML文档
2012/03/01 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
python实现顺序表的简单代码
2018/09/28 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
Pytorch Tensor的统计属性实例讲解
2019/12/30 Python
教师实习自我鉴定
2013/12/14 职场文书
校运会广播稿100字
2014/01/27 职场文书
国窖1573广告词
2014/03/21 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python