首頁  >  文章  >  web前端  >  Vue中v-show新增表達式的問題(判斷是否顯示)

Vue中v-show新增表達式的問題(判斷是否顯示)

亚连
亚连原創
2018-05-29 09:41:342119瀏覽

這篇文章主要介紹了關於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,用於保存點擊的資料來源標識,我也數據來源的程式碼貼出來了。

<p 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>
</p>

6、重點是下面這一行程式碼,透過在v-show中加入表達式,用於判斷點擊新聞,應該顯示頭條和要聞,主要看標紅的那塊,程式碼如下:

<p 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>
</p>



上面是我整理給大家的,希望未來會對大家有幫助。 ######相關文章:#########js中apply和Math.max()函數的問題及區別介紹###############淺談Vue內建component元件的應用程式場景###############vue2中使用less簡易教學###################### #####

以上是Vue中v-show新增表達式的問題(判斷是否顯示)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn