当前位置: 移动技术网 > IT编程>脚本编程>vue.js > 使用vue-router与v-if实现tab切换遇到的问题及解决方法

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

2019年06月03日  | 移动技术网IT编程  | 我要评论

彩虹冒险物语,陶喆专辑,国家安全日

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
  }
 }

效果如下

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

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

vue-router

v-if

总结:

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

以上所述是小编给大家介绍的vue-router与v-if实现tab切换的思考,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网