使用vue-router與v-if實現(xiàn)tab切換遇到的問題及解決方法
vue-router 該如何使用
忽然碰到一個常見的問題,明明可以使用 v-if / v-show
可以的解決的問題,有沒有必要是使用 vue-router來解決。 比如常見的 tab 切換。一時間,我有些猶豫了,有沒有必要濫用 vue-router。那到底何時用才叫合理呢?
先上代碼,用兩種方式實現(xiàn)的效果
使用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
總結:
- 目前看起來,效果沒有很大區(qū)別,代碼量也沒有減少
- 使用原生,可能是用索引進行關聯(lián),在vue中推薦使用 數(shù)據(jù)進行驅動
- 暫且記錄一筆,以待后期繼續(xù)研究
以上所述是小編給大家介紹的vue-router與v-if實現(xiàn)tab切換的思考,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
vue 如何添加全局函數(shù)或全局變量以及單頁面的title設置總結
本篇文章主要介紹了vue 如何添加全局函數(shù)或全局變量以及單頁面的title設置總結,非常具有實用價值,需要的朋友可以參考下2017-06-06詳解Vue webapp項目通過HBulider打包原生APP
這篇文章主要介紹了詳解Vue webapp項目通過HBulider打包原生APP,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06vue2.0實現(xiàn)倒計時的插件(時間戳 刷新 跳轉 都不影響)
我發(fā)現(xiàn)好多倒計時的插件,刷新都會變成從頭再來,于是自己用vue2.0寫了一個,感覺還不錯,特此分享到腳本之家平臺供大家參考下2017-03-03