使用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 相关文章推荐
简单三步,搞掂内存泄漏
Mar 10 Javascript
JavaScript中读取和保存文件实例
May 08 Javascript
jQuery表单域属性过滤器用法分析
Feb 10 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
原生JavaScript实现异步多文件上传
Dec 02 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
Aug 02 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
Feb 20 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
angularjs中回车键触发某一事件的方法
Apr 24 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
vue文件运行的方法教学
Feb 12 Javascript
js中复选框的取值及赋值示例详解
Oct 18 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.MVC的模板标签系统(五)
2006/09/05 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
Python3爬虫之自动查询天气并实现语音播报
2019/02/21 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
python 如何设置守护进程
2020/10/29 Python
Python和Bash结合在一起的方法
2020/11/13 Python
web页面录屏实现
2019/02/12 HTML / CSS
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
车工岗位职责
2013/11/26 职场文书
送货司机岗位职责
2013/12/11 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
旗帜观后感
2015/06/08 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js