vue學(xué)習(xí)資料三(v-if金抡、v-else瀑焦、v-show、v-for)

VUE

模板指令

  • 還記得underscore.js中if如何書寫的嗎梗肝?
<script src='underscore.js'></script>
<script id="tpl" type="text/template">
    <%if (isShow) {%><h1><%=title%></h1><%} else {%> <h1><%=otherTitle%></h1> <%}%>
</script>
<script>
var data = {
    isShow:true,
    title:'hello',
    otherTitle:'world'
}
var demo = _.template(document.getElementById('tpl').innerHTML)(data)
console.log(demo)
</script>

條件判斷v-if

  • 直接在元素上添加v-if
  • 如果該數(shù)據(jù)KEY是true的話榛瓮,我們將該dom元素顯示,否則將該dom元素隱藏
  • v-else: 與v-if配合使用巫击,如果if不成立則顯示v-else禀晓;
<div id="app">
    <h1><span v-if="isSpecial">特價(jià)</span><span v-else>原價(jià)</span>{{price | currency "¥"}}</h1>
</div>
<script src="vue.js"></script>
<script>
    new Vue({
        el:"#app",
        data:{
            isSpecial:false,
            price:100
        }
    })
</script>
  • 如果要操作多個(gè)元素判斷,可以使用template標(biāo)簽
<div id="app">
    <h1>
    <template v-if="isSpecial">
        <span>今日</span>
        <span>特價(jià)</span>
    </template>
    <template v-else>
        <span>原價(jià)</span>
    </template>
        {{price | currency "¥"}}
    </h1>
</div>
<script src="vue.js"></script>
<script>
    new Vue({
        el:"#app",
        data:{
            isSpecial:false,
            price:100
        }
    })
</script>
  • 使用underscore.js把一個(gè)列表渲染出來:
<ul id="app">
    
</ul>

<script src="../underscore.js"></script>
<script type="text/template" id="tpl">
    <%for (var i = 0;i < news.length;i++){%>
        <li><%=news[i]%></li>
    <%}%>
</script>
<script>
var data = {
    news:[
    '最高法原副院長(zhǎng)貪1.1億被判無期',
    '學(xué)校發(fā)來課表 家長(zhǎng)一點(diǎn)被刷5200',
    '懟俄羅斯!特朗普向精英階層表態(tài)'
    ]
} 
var tpl = document.getElementById('tpl').innerHTML;
var html = _.template(tpl)(data);
document.getElementById('app').innerHTML = html;
</script>

使用vue循環(huán)模板

v-for = "item in data"
  • item 是data數(shù)組中的一個(gè)成員坝锰;
<div id="app">
    <ul>
    <!-- li需要循環(huán) 把news中的每一條數(shù)據(jù)轉(zhuǎn)換成item,item被看成是news中的每一個(gè)成員-->
        <li v-for="item in news">{{item}}</li>
    </ul>
</div>

<script src="vue.js"></script>
<script>
var data = {
    news:[
    '最高法原副院長(zhǎng)貪1.1億被判無期',
    '學(xué)校發(fā)來課表 家長(zhǎng)一點(diǎn)被刷5200',
    '懟俄羅斯!特朗普向精英階層表態(tài)'
    ]
} 
new Vue({
    el:"#app",
    data:data
})
</script>
  • 有時(shí)候data的數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜該如何粹懒?
<div id="app">
    <ul>
    <!-- li需要循環(huán) 把news中的每一條數(shù)據(jù)轉(zhuǎn)換成item,item被看成是news中的每一個(gè)成員-->
        <li v-for="item in news"><span v-if="item.type">{{item.type}} | </span>{{item.title}}</li>
    </ul>
</div>

<script src="vue.js"></script>
<script>
var data = {
    news:[
    {
        title:'最高法原副院長(zhǎng)貪1.1億被判無期',
        type:''
    },
    {
        title:'學(xué)校發(fā)來課表 家長(zhǎng)一點(diǎn)被刷5200',
        type:'金融'
    },
    {
        title:'懟俄羅斯!特朗普向精英階層表態(tài)',
        type:'全球'
    }
    ]
} 
new Vue({
    el:"#app",
    data:data
})
</script>

使用v-if:如果type有值,則會(huì)顯示前面的標(biāo)簽顷级,如果沒有則不會(huì)顯示凫乖;

如果v-for需要循環(huán)多個(gè)節(jié)點(diǎn)元素,我們也可以使用template模板

<div id="app">
    <ul>
        <template v-for="item in news">
            <li><span v-if="item.type">{{item.type}} | </span>{{item.title}}</li>
            <hr>
        </template>
    </ul>
</div>

v-show

v-show = "key",如果key是true,則顯示該元素弓颈;
他的作用也是顯示帽芽,但是只能處理一個(gè)標(biāo)簽;

實(shí)現(xiàn)支付寶登錄頁面實(shí)時(shí)輸入框輸入內(nèi)容后翔冀,顯示下拉框匹配郵箱后綴的例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .app{
            margin:50px auto;
            width: 500px;
            border:1px solid #ccc;
            padding-top: 5px;
        }
        label{
            width: 120px;
            display: inline-block;
            text-align: right;
        }
        input{
            height: 40px;
            line-height: 40px;
            padding-left: 10px;
            width: 250px;
        }
        ul{
            padding: 0;
            list-style: none;
            border:1px solid #ccc;
            width: 250px;
            margin-left: 120px;
            margin-top: -1px;

        }
        li{
            list-style: none;
            padding: 0;

        }
        li:hover{
            background-color: #ccc;
        }
    </style>
</head>
<body>
<div id="app" class="app">
    <div>
        
        <label for="inp">用戶名</label><input type="text" id="inp" v-model="num">
        <ul v-show="checkNum">
        <!-- 由于email數(shù)據(jù)是一個(gè)數(shù)組 所以渲染列表要循環(huán)-->
            <li v-for="item in email">{{num}}{{item}}</li>
        </ul>
    </div>
</div>
<script src="vue.js"></script>
<script>
    new Vue({
        el:"#app",
        data:{
            num:'',
            email:['@qq.com','@163.com','@139.com','@sina.com','@189.com']

        },
        computed:{
            checkNum:function(){
               return this.num && this.num.indexOf('@') < 0
                }
         }
    })
</script>
</body>
</html>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末导街,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子橘蜜,更是在濱河造成了極大的恐慌菊匿,老刑警劉巖付呕,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件计福,死亡現(xiàn)場(chǎng)離奇詭異跌捆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)象颖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門佩厚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人说订,你說我怎么就攤上這事抄瓦。” “怎么了陶冷?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵钙姊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我埂伦,道長(zhǎng)煞额,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任沾谜,我火速辦了婚禮膊毁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘基跑。我一直安慰自己婚温,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布媳否。 她就那樣靜靜地躺著栅螟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪篱竭。 梳的紋絲不亂的頭發(fā)上力图,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音室抽,去河邊找鬼搪哪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坪圾,可吹牛的內(nèi)容都是我干的晓折。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼兽泄,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼漓概!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起病梢,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤胃珍,失蹤者是張志新(化名)和其女友劉穎梁肿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體觅彰,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吩蔑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了填抬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烛芬。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖飒责,靈堂內(nèi)的尸體忽然破棺而出赘娄,到底是詐尸還是另有隱情,我是刑警寧澤宏蛉,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布遣臼,位于F島的核電站,受9級(jí)特大地震影響拾并,放射性物質(zhì)發(fā)生泄漏揍堰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一辟灰、第九天 我趴在偏房一處隱蔽的房頂上張望个榕。 院中可真熱鬧,春花似錦芥喇、人聲如沸西采。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽械馆。三九已至,卻和暖如春武通,著一層夾襖步出監(jiān)牢的瞬間霹崎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工冶忱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留尾菇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓囚枪,卻偏偏與公主長(zhǎng)得像派诬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子链沼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容