作用于HTML元素的Vue.js指令

我在這里學(xué)習(xí)內(nèi)置指令

  • v-model
  • v-if
  • v-show
  • v-else
  • v-for
  • v-bind
  • v-on

v-model表單數(shù)據(jù)模型雙向綁定

example:
① 表單文本輸入框效果
<input type="text" v-model.trim="myValue"> {{ myValue }}

export default {
  data () {
    return {
      myValue: '',
     }
}
效果演示:在文本框中輸入的內(nèi)容會(huì)立刻動(dòng)態(tài)地在{{ myValue }}處展示出來
  1. v-model.lazy 延遲,當(dāng)我們完成了輸入后按enter鍵才會(huì)有輸出。
    <input type="text" v-model.lazy="myValue"> {{ myValue }}
    輸入內(nèi)容沒有即刻顯示:
    點(diǎn)擊Enter鍵后:

  1. v-model.number 強(qiáng)制我們輸入的值是數(shù)字
    <input type="text" v-model.number="myValue"> {{ myValue }}
    此時(shí)測試時(shí)笨腥,會(huì)發(fā)現(xiàn)效果和什么都不加即
    <input type="text" v-model="myValue"> {{ myValue }} 沒有任何區(qū)別
但實(shí)際上改變的是所輸入內(nèi)容的類型,我們可以對Mustache的輸入內(nèi)容稍作修改舶掖,改為{{ typeof myValu }}看看有什么不同之處

1.v-model時(shí),無論是空白、還是純字母眠冈、純數(shù)字或者是數(shù)字字母混合桩引,其類型都是string
<input type="text" v-model="myValue"> {{ typeof myValue }}

  1. v-model.number時(shí)
    當(dāng)文本框內(nèi)容為空白或者是輸入的第一個(gè)字符是非數(shù)字是缎讼,都是String類型

    當(dāng)輸入的內(nèi)容為純數(shù)字或者是以數(shù)字開頭的都是number類型。
    對于以數(shù)字開頭的數(shù)字字母混合按理來說應(yīng)該是String類型坑匠,但我們可以看到下圖第2,3兩個(gè)文本框血崭, 當(dāng)鼠標(biāo)不再聚焦到文本框時(shí),數(shù)字后面的內(nèi)容就會(huì)自動(dòng)刪除厘灼。
  1. v-model.trim 文本框前后輸入的空格會(huì)被忽略掉夹纫。

② 復(fù)選框效果

     <input type="checkbox" value="apple" v-model="myBox">apple
     <input type="checkbox" value="banana" v-model="myBox">banana
     <input type="checkbox" value="pinapple" v-model="myBox">pinapple
     {{ myBox }}
export default {
  data () {
    return {
      myBox: []
      /*因?yàn)閺?fù)選框中有不同的元素,所以給myBox初始化為一個(gè)空的數(shù)組*/
  }
}
每點(diǎn)擊一個(gè)元素后手幢,立即動(dòng)態(tài)的在{{ myBox }}中顯示其value

v-if

v-if指令是根據(jù)條件表達(dá)式的值來執(zhí)行元素的插入或者刪除行為捷凄。

v-show

條件渲染指令,和v-if指令不同的是围来,使用v-show指令的元素始終會(huì)被渲染到HTML跺涤,它只是簡單地為元素設(shè)置CSS的style屬性匈睁。

v-if 是html代碼中有沒有被選中的內(nèi)容
v-show是沒有被選中的內(nèi)容display為none但它是存在的。

v-else

v-else元素必須立即跟在v-if或v-show元素的后面——否則它不能被識別桶错。

v-for

指令基于一個(gè)數(shù)組渲染一個(gè)列表航唆,它和JavaScript的遍歷語法相似
v-for="item in items" (items是一個(gè)數(shù)組,item是當(dāng)前被遍歷的數(shù)組元素院刁。)

v-for 數(shù)組渲染和對象渲染的區(qū)別

① 數(shù)組渲染

export default {
data () {
    return {
      hello: 'hello vue.js',
      list: [
        {
          name: 'apple',
          price: 34
        },
        {
          name: 'banana',
          price: 56
        }
      ]
}
<template>
  <div id="app">
     <ul>
       <li v-for="(item, index) in List">{{ item.name }} + {{ item.price }} + {{ index }}</li>
     </ul>
  </div>
</template>

結(jié)果演示為:

  • apple + 34 + 0
  • banana + 56 + 1

②對象渲染

 data () {
    return {
      objList: {
        name: 'apple',
        price: 34,
        color: 'red',
        weight: '2kg'
      }
    }
}
<template>
  <div id="app">
     <ul>
       <li v-for="(value, key) in objList">{{ key }} + {{ value }}</li>
     </ul>
  </div>
</template>

結(jié)果演示:

  • name + apple
  • price + 34
  • color + red
  • weight + 2kg
提示:
      上面所用到的item,index,value,key都是自定義變量糯钙。
      數(shù)組渲染可以顯示下標(biāo)如index,對象渲染可以顯示對象名如key

v-for參數(shù)列表

  1. 一個(gè)參數(shù) : v-for="value in items"
  2. 兩個(gè)參數(shù):<div v-for="(value, key) in object"> {{ key }}: {{ value }} </div>
  3. 三個(gè)參數(shù):
<div v-for="(value, key, index) in object">
  {{ index }}. {{ key }}: {{ value }}
</div>

v-bind

綁定標(biāo)簽屬性退腥。
v-bind指令可以在其名稱后面帶一個(gè)參數(shù)任岸,中間放一個(gè)冒號隔開,這個(gè)參數(shù)通常是HTML元素的特性(attribute)狡刘,例如:v-bind:class (可以給這個(gè)class添加新的屬性)

example:用v-bind綁定class
①class 為一個(gè)字符串時(shí)
<a v-bind:class = "classStr">to baidu</a>

/*給a標(biāo)簽加上class為red-font的js代碼*/
export default {
       data () {
            return{
                classStr: 'red-font'
            }
       }
}

②加上的類名也可以是一個(gè)對象享潜。
<a v-bind:class = "className">to baidu</a>

/*給a標(biāo)簽加上class為red-font的js代碼,根據(jù)布爾值判斷是否加入*/
export default {
       data () {
            return{
                className: {
                     'red-font'/*這是類名*/ : true,
                     'blue-font': false
                 }
            }
       }
}

③以數(shù)組的方式添加類名
<a v-bind:class = "className">to baidu</a>

/*數(shù)組里面全部的類名都會(huì)被加入到a標(biāo)簽中*/
export default {
       data () {
            return{
                className: [red-font, big-font, blue-font]
            }
       }
}

④在標(biāo)簽中直接輸入要添加的calss
<a v-bind:class = [classA, classB,{red-font: hassErr}]>to baidu</a>

/*同時(shí)將classA和classB渲染到了a標(biāo)簽中*/
export default {
       data () {
            return{
               classA: 'isClassA',
               classB: 'isClassB',
               hassErr: true
            }
       }
}

或者<a v-bind:class = [classA, {red-font: true }]>to baidu</a>


v-on

v-on指令用于給監(jiān)聽DOM事件嗅蔬,它的用語法和v-bind是類似的
v-on可以是自定義事件也可以是瀏覽器的默認(rèn)事件剑按。

example:
瀏覽器默認(rèn)事件<a v-on:click="doSomething">
自定義事件:<a @my-event="onComaMyEvent">

v-bind和v-on的縮寫
Vue.js為最常用的兩個(gè)指令v-bind和v-on提供了縮寫方式。v-bind指令可以縮寫為一個(gè)冒號澜术,v-on指令可以縮寫為@符號艺蝴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鸟废,隨后出現(xiàn)的幾起案子猜敢,更是在濱河造成了極大的恐慌,老刑警劉巖盒延,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锣枝,死亡現(xiàn)場離奇詭異,居然都是意外死亡兰英,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門供鸠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畦贸,“玉大人,你說我怎么就攤上這事楞捂”』担” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵寨闹,是天一觀的道長胶坠。 經(jīng)常有香客問我,道長繁堡,這世上最難降的妖魔是什么沈善? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任乡数,我火速辦了婚禮,結(jié)果婚禮上闻牡,老公的妹妹穿的比我還像新娘净赴。我一直安慰自己,他們只是感情好罩润,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布玖翅。 她就那樣靜靜地躺著,像睡著了一般割以。 火紅的嫁衣襯著肌膚如雪金度。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天严沥,我揣著相機(jī)與錄音猜极,去河邊找鬼。 笑死祝峻,一個(gè)胖子當(dāng)著我的面吹牛魔吐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播莱找,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼酬姆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奥溺?” 一聲冷哼從身側(cè)響起辞色,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浮定,沒想到半個(gè)月后相满,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡桦卒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年立美,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片方灾。...
    茶點(diǎn)故事閱讀 38,814評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡建蹄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出裕偿,到底是詐尸還是另有隱情洞慎,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布嘿棘,位于F島的核電站劲腿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鸟妙。R本人自食惡果不足惜焦人,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一挥吵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧垃瞧,春花似錦蔫劣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗦锐,卻和暖如春嫌松,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奕污。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工萎羔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碳默。 一個(gè)月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓贾陷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘱根。 傳聞我的和親對象是個(gè)殘疾皇子髓废,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評論 2 351

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