使用vue框架手动创建导航栏

先上效果图

以下是原先的实现代码和思路:

<li @click="checkTabOpt">
    < a href="#">
        <input id="radio_huiyuanxinxi" type="radio" value="huiyuanxinxi" v-model="titleShow" style="display:none;" >
        <label for="radio_huiyuanxinxi"><span>基础信息</span></label>
    </ a>
</li>

checkTabOpt()方法里做了对于被选中后的样式处理,然后在data中声明titleShow属性,把每个模块对应的代码用一个大div包括住再加<div v-if="titleShow=='huiyuanxinxi'">的vue绑定。这样就基本实现了根据点击的input标签展现不同的div标签。
但是这里有个问题,可以从上图看到,就是在li标签里面设置一个input标签,每一个li中有很大的内边距。注意只点击这些空白的内边距没有绑定到titleShow的值,造成点击空白div不变但是li被选中,只有点击到字上才能实现真正的功能。
然后做了以下代码改动:

<li  @click="checkTabOpt($event,'huiyuanxinxi')"">
    <a href="#">
        <input id="radio_huiyuanxinxi" type="radio"  style="display:none;" >
        <label ><span>基础信息</span></label>
    </a>
</li>

改变点击事件,设置一个参数,传入titleShow的值,在checkTabOpt()方法中使用set绑定值。

this.$set("titleShow",title);

这样只要点击到li标签就能改变titleShow的值,传递值也比起前一种方式更加简洁。
博主功力不深,欢迎大家谈论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值