当vue路由变化时,改变导航栏的样式的方法
当我们需要做一个类似于顶部或者底部导航栏公共组件的时候,单击某个导航栏按钮,跳转到另一个组件,并且改变导航栏的样式。1) 通过编程式导航实现路由的切换显示($router)相关API:this.$router.push(path): 相当于点击路由链接(可以返回到当前路由界面)this.$router.replace(path): 用新路由替换当前路由(不可以返回到当前路由界面)...
·
当我们需要做一个类似于顶部或者底部导航栏公共组件的时候,单击某个导航栏按钮,跳转到另一个组件,并且改变导航栏的样式。
1) 通过编程式导航实现路由的切换显示($router)
相关API:
this.$router.push(path): 相当于点击路由链接(可以返回到当前路由界面)
this.$router.replace(path): 用新路由替换当前路由(不可以返回到当前路由界面)
this.$router.back(): 请求(返回)上一个记录路由
this.$router.go(-1): 请求(返回)上一个记录路由
this.$router.go(1): 请求下一个记录
2) 通过动态 class 和$route.path 来实现 tab 样式切换
FooterGuide.vue
<template>
<footer class="footer_guide border-1px">
<!-- 当路由改变时,导航栏样式发生变化,判断布尔值来开启样式 -->
<span class="guide_item" :class="{on:'/msite'===$route.path}" @click="goTo('/msite')">
<span class="item_icon">
<i class="iconfont icon-waimai"></i>
</span>
<span>外卖</span>
</span>
<span class="guide_item" :class="{on:'/search'===$route.path}" @click="goTo('/search')">
<span class="item_icon">
<i class="iconfont icon-search"></i>
</span>
<span>搜索</span>
</span>
<span class="guide_item" :class="{on:'/order'===$route.path}" @click="goTo('/order')">
<span class="item_icon">
<i class="iconfont icon-dingdan"></i>
</span>
<span>订单</span>
</span>
<span class="guide_item" :class="{on:'/profile'===$route.path}" @click="goTo('/profile')">
<span class="item_icon">
<i class="iconfont icon-geren"></i>
</span>
<span>我的</span>
</span>
</footer>
</template>
<script>
export default {
methods:{
goTo(path){
this.$router.replace(path)
}
}
};
</script>
index.js(路由器模块)
// 路由器对象模块
import Vue from 'vue'
import VueRouter from 'vue-router'
import MSite from '../pages/MSite/MSite.vue'
import Search from '../pages/Search/Search.vue'
import Order from '../pages/Order/Order.vue'
import Profile from '../pages/Profile/Profile.vue'
//声明使用插件
Vue.use(VueRouter)
export default new VueRouter({
//所有路由
routes:[
{
path:'/msite',
component:MSite
},
{
path:'/search',
component:Search
},
{
path:'/order',
component:Order
},
{
path:'/profile',
component:Profile
},
{
path:'/',
redirect:'/msite'
}
]
})
更多推荐
已为社区贡献2条内容
所有评论(0)