使用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 相关文章推荐
JS 实现获取打开一个界面中输入的值
Mar 19 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
原生js仿浏览器滚动条效果
Mar 02 Javascript
AngularJS  ng-repeat遍历输出的用法
Jun 19 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
Jun 25 Javascript
jQuery使用zTree插件实现可拖拽的树示例
Sep 23 jQuery
vuex中使用对象展开运算符的示例
Sep 25 Javascript
layui点击导航栏刷新tab页的示例代码
Aug 14 Javascript
js实现打字小游戏
Dec 17 Javascript
three.js 将图片马赛克化的示例代码
Jul 31 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注释和去除空格函数分享
2014/03/13 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
Python简易版图书管理系统
2019/08/12 Python
Python面向对象封装操作案例详解 II
2020/01/02 Python
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
销售简历自我评价
2014/01/24 职场文书
四年级下册教学反思
2014/02/01 职场文书
客服专员岗位职责
2014/02/28 职场文书
报关报检委托书
2014/04/08 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
工作岗位职责范本
2015/02/15 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
初中地理教学反思
2016/02/19 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
不要在HTML中滥用div
2021/05/08 HTML / CSS