关于Vue中v-show中添加表达式用于判断是否显示的问题

2023-11-03

Vue中v-show添加表达式的问题

一、需求场景

1、先来说说我的需求,有数据来源和标签类型两行选项,如下图所示:
2、根据需求,我需要在点击上面的某个数据来源的时候,下面的标签类型自动切换,
需求说明如下:
3、一开始 是想写死的,就是把各种情况写死在页面上,后来查看官方文档一会,
数据来源的集合可以这样写,id为各个类型的标识,name为名称,mark为点击
某个数据来源 的时候标签类型根据当前点击的数据来源进行判断切换。如下图:
infoTypeList: [
  {
    id: 11,
    name: '新闻',
    mark: 'news'
  },
  {
    id: 13,
    name: '论坛',
    mark: 'bbs'
  },
  {
    id: 17,
    name: '微博',
    mark: 'wb'
  },
  {
    id: 6,
    name: '微信',
    mark: 'wx'
  },
  {
    id: 7,
    name: 'APP',
    mark: 'app'
  },
  {
    id: 8,
    name: '平媒',
    mark: 'pm'
  },
  {
    id: 20,
    name: '境外',
    mark: 'overseas'
  },
  {
    id: 21,
    name: 'Facebook',
    mark: 'facebook'
  },
  {
    id: 22,
    name: 'Twitter',
    mark: 'twitter'
  }
],
4、然后标签类型集合数据结构如下,其中mark字段存放哪些数据来源包含于当前标签。
  
  
markTypeList : [
{
id : 32 ,
name : ' 主帖 ' ,
mark : 'bbs'
} ,
{
id : 33 ,
name : ' 回帖 ' ,
mark : 'bbs'
} ,
{
id : 34 ,
name : ' 原创 ' ,
mark : 'wb'
} ,
{
id : 35 ,
name : ' 转发 ' ,
mark : 'wb_wx'
} ,
{
id : 36 ,
name : ' 头条 ' ,
mark : 'news_app_wx_pm'
} ,
{
id : 37 ,
name : ' 头图 ' ,
mark : 'app'
} ,
{
id : 38 ,
name : ' 置顶 ' ,
mark : 'app'
} ,
{
id : 39 ,
name : ' 要闻 ' ,
mark : 'news'
} ,
{
id : 40 ,
name : ' 头版 ' ,
mark : 'pm'
} ,
] ,

5、在数据来源的各个名称中加入一个点击事件,data中存入一个变量infoTypeMark,
用于保存点击的数据来源标识,我也数据来源的代码贴出来了。
  
  
<div v-if= " isShowSingleInfoType " >
<label class= "left-10" > 数据来源 </label>
<span class= "info-type activecolor" @click= " changeInfoType (- 1 ) " > 全部 </span>
<span class= "info-type" @click="changeInfoType(item.id, item.mark) " v-for= " item in infoTypeList " :key= " item . id " > {{ item . name }} </span>
<label class= "multichoose" >
<Button @click= " toggleInfoType " size= "small" > + 多选 </Button>
</label>
</div>
6、重点是下面这一行代码,通过在v-show中添加表达式,用于判断点击新闻,
应该显示头条和要闻,主要看标红的那块,代码如下:
  
  
<div class= "layout-content-main" >
<label class= "left-10" >
标签类型
</label>
<span class= "mark-type activecolor" @click= " changeMarkType (- 1 ) " > 全部 </span>
<span v-show="item.mark.indexOf(infoTypeMark) > -1" class= "mark-type" @click= " changeMarkType ( item . id ) " v-for= " item in markTypeList " :key= " item . id " > {{ item . name }} </span>
</div>

如此就不用写那么多判断了,如上是我在开发的过程中遇到的一个小问题,
若有更好的方法,还希望告诉菜鸟我,3Q!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Vue中v-show中添加表达式用于判断是否显示的问题 的相关文章

  • 闻达搭建paddingpadding

    项目地址wenda LLM wenda 闻达 一个LLM调用平台 为小模型外挂知识库查找和设计自动执行动作 实现不亚于于大模型的生成能力 github com git clone https github com wenda LLM wen

随机推荐