首页
当前位置:   article > 正文

vant底部导航点击两次才能更换样式的问题_vant tabbar标签点击2次高亮

vant tabbar标签点击2次高亮

最近项目中遇到的底部导航栏在组件必须点两下才可以更换样式的问题,贴出来分享一下。
项目使用vantui的底部导航
建一个footer.vue

 

  1. <template>
  2. <van-tabbar v-model="active" active-color="#07c160" inactive-color="#999">
  3. <van-tabbar-item to="/">
  4. <span>首页</span>
  5. <img slot="icon" slot-scope="props" :src="props.active ? home_icon.active : home_icon.normal" />
  6. </van-tabbar-item>
  7. <van-tabbar-item icon="search" to="/order">
  8. <span>订单</span>
  9. <img slot="icon" slot-scope="props" :src="props.active ? order_icon.active : order_icon.normal" />
  10. </van-tabbar-item>
  11. <van-tabbar-item icon="setting-o" info="3" to="/mineHold">
  12. <span>待办</span>
  13. <img slot="icon" slot-scope="props" :src="props.active ? agency_icon.active : agency_icon.normal" />
  14. </van-tabbar-item>
  15. <van-tabbar-item icon="setting-o" to="/my">
  16. <span>我的</span>
  17. <img slot="icon" slot-scope="props" :src="props.active ? mine_icon.active : mine_icon.normal" />
  18. </van-tabbar-item>
  19. </van-tabbar>
  20. </template>
  21. <script>
  22. export default {
  23. name: "tabbar",
  24. data() {
  25. return {
  26. active: 0,
  27. home_icon: {
  28. normal: require("../../../static/img/icon_home.png"),
  29. active: require("../../../static/img/icon_home_selected.png")
  30. },
  31. order_icon: {
  32. normal: require("../../../static/img/icon_order.png"),
  33. active: require("../../../static/img/icon_order_selected.png")
  34. },
  35. agency_icon: {
  36. normal: require("../../../static/img/icon_wait.png"),
  37. active: require("../../../static/img/icon_wait_selected.png")
  38. },
  39. mine_icon: {
  40. normal: require("../../../static/img/icon_my.png"),
  41. active: require("../../../static/img/icon_my_selected.png")
  42. }
  43. };
  44. }
  45. };
  46. </script>
  47. <style lang="scss" scoped>
  48. .active_tab img {
  49. width: 26px;
  50. height: 26px;
  51. }
  52. .active_tab .router-link-active {
  53. color: #07c160;
  54. }
  55. </style>

在app.vue全局组件中引入

 

  1. <my-footer v-if="tabType"></my-footer>
  2. import myFooter from './components/common/footer'
  3. components: {
  4. myFooter
  5. },

在app.vue 中监听$route 的变化 可以获取跳转到的路由信息,通过 路由的name 值 进行判断即可

 

  1. $route(e){
  2. if(e.name=='Home'||e.name=='Order'||e.name=='mineHold'||e.name=='My'{
  3. this.tabType=true
  4. }else{
  5. this.tabType=false
  6. }
  7. }

监听路由,如果是需要引入底部导航的页面让其显示,否则让其隐藏

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/981035
推荐阅读
相关标签