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

vue

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!






以上是 关于Vue中v-show中添加表达式用于判断是否显示的问题 的全部内容, 来源链接: utcz.com/z/377158.html

回到顶部