移动端底部导航固定配合vue-router如何实现组件切换功能

这篇文章主要介绍移动端底部导航固定配合vue-router如何实现组件切换功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

在我们平时练习或者实际项目中也好,我们常常遇到这么一个需求:移动端中的导航并不是在顶部也不是在底部,而是在最底部且是固定的,当我们点击该导航项时会切换到对应的组件。

移动端底部导航固定配合vue-router如何实现组件切换功能

相信对于很多朋友而言,这是一个很简单的需求,而且市面上有很多开源的组件库就可以实现,像比如说:cube-ui等!那么对于一个要是还在练习以及对第三方组件库不是很了解的朋友不妨看看我这篇,相信会对你有所收获的!

首先,在实现这个需求之前,我们先分析或者回想下和自己做过的demo中哪个类似,相信很多朋友立马就会想起来---tab栏切换,那么对于HTML结构的设计我们便可以借助tab栏切换的结构:一个大盒子套着两个小盒子,一个作容器,另一个作导航!

HTML 结构

<div>
<div>容器</div>
<divclass="footer">
<divclass="module-nav">
<divclass="nav-i">
<divclass="iconfonticon">&#xe610;</div>
<h4>首页</h4>
</div>
<divclass="nav-i">
<divclass="iconfonticon">&#xe629;</div>
<h4>发现</h4>
</div>
<divclass="nav-i">
<divclass="iconfonticon-add">&#xe84f;</div>
</div>
<divclass="nav-i">
<divclass="iconfonticon">&#xe62c;</div>
<h4>消息</h4>
</div>
<divclass="nav-i">
<divclass="iconfonticon">&#xe601;</div>
<h4>我的</h4>
<div>
</div>
</div>
</div>

做完HTML结构的编写,那我们在给上面的骨架穿上衣服,根据需求“底部固定”,我们很容易便会想到 position: fixed ,当然我这里也是用固定定位实现的,但布局采用的是 flex,在采用 flex 结合固定定位布局的时候常常会出现很多不必要的问题,如:flex 属性失效,两者效果冲突等,原因更多的便是“脱标”导致的,其中更多的便是出现在父元素 flex,子元素 position的时候,这时候可以中间加个div使两者摆脱联系。

css 样式( stylus形式 )

.footer
positionfixed
bottom0
z-index999
max-width1080px
width100%
border-top1pxsolid#C0C0C0
.module-nav
displayflex
justify-contentspace-around
.nav-i
width60px
text-aligncenter
.icon
font-size35px
padding5px0
.icon-add
font-size60px
h4
font-size15px
font-weightnormal
margin0
padding-bottom5px

骨架和衣服都做好后,那么大概的雏形就出来了,我们的需求也就实现了一半,剩下的便是组件切换了。这个就简单了,只需要配置下路由表,然后指定跳转便可以了

路由表

routes:[
{
path:"/",
name:"home",
component:Home
},
{
path:"/find",
name:"find",
component:Find
},
{
path:"/info",
name:"info",
component:Info
},
{
path:"/user",
name:"user",
component:User
}
]

最后在“容器”内添加router-view即可,下面可以看看完整代码:

//HTML
<div>
<divclass="main-content">
<router-view></router-view>
</div>
<divclass="footer">
<divclass="module-nav">
<router-linktag="div"to="/"class="nav-i">
<divclass="iconfonticon">&#xe610;</div>
<h4>首页</h4>
</router-link>
<router-linktag="div"to="/find"class="nav-i">
<divclass="iconfonticon">&#xe629;</div>
<h4>发现</h4>
</router-link>
<divclass="nav-i">
<divclass="iconfonticon-add">&#xe84f;</div>
</div>
<router-linktag="div"to="/info"class="nav-i">
<divclass="iconfonticon">&#xe62c;</div>
<h4>消息</h4>
</router-link>
<router-linktag="div"to="/user"class="nav-i">
<divclass="iconfonticon">&#xe601;</div>
<h4>我的</h4>
</router-link>
</div>
</div>
</div>

//css
.footer
positionfixed
bottom0
z-index999
max-width1080px
width100%
border-top1pxsolid#C0C0C0
.module-nav
displayflex
justify-contentspace-around
.nav-i
width60px
text-aligncenter
.icon
font-size35px
padding5px0
.icon-add
font-size60px
h4
font-size15px
font-weightnormal
margin0
padding-bottom5px

//router
exportdefaultnewRouter({
routes:[
{
path:"/",
name:"home",
component:Home
},
{
path:"/find",
name:"find",
component:Find
},
{
path:"/info",
name:"info",
component:Info
},
{
path:"/user",
name:"user",
component:User
}
]
});

以上是“移动端底部导航固定配合vue-router如何实现组件切换功能”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2021-07-09 21:18:18
收藏
分享
海报
0 条评论
182
上一篇:BootStrap如何实现自定义popover,点击区域隐藏功能 下一篇:vue中怎么动态修改a标签的样式
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码