欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-10-15 12:11:27
vue-router 该如何使用 忽然碰到一个常见的问题,明明可以使用 v-if / v-show 可以的解决的问题,有没有必要是使用 vue-router来解决。 比如...

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切换的思考,希望对大家有所帮助