2017-3-29 VUE

指令歸納總結

1媒熊、v-if :可以完全根據(jù)表達式的值在DOM中生成或者移除一個元素。如果v-if表達式賦值為false坟比,對應的元素就會從DOM中移除芦鳍。如果需要切換多個元素,把<template>元素當作包裝元素葛账,并使用v-if柠衅,最終的渲染結果不會包含它。

<div id="example">
        <template v-if="ok">
            <h1>A</h1>
            <p>B</p>
            <p>C</p>
        </template>
    </div>
    <script>
    var exampleVM2 = new Vue ({
        el:'#example',
        data: {
            ok:true
        }
    })
    </script>

2籍琳、v-show :根據(jù)表達式的值來顯示或者隱藏HTML元素菲宴。當v-show賦值為false時,元素將被隱藏巩割,并且元素增加一個內(nèi)聯(lián)樣式style="display:none"裙顽。v-show不支持<template>語法。

<input type="text" name="" v-model="message" placeholder="edit me">
    <div id="example">
        <p v-show="ok">HEllo</p>
    </div>
    <script>
        var exampleVM2 = new Vue({
            el:'#example',
            data: {
                ok:false
            }
        })
    </script>

一般來說宣谈,v-if更高的切換消耗愈犹,而v-show有更高的初始渲染消耗,因此需要頻繁地切換闻丑,使用v-show漩怎,在運行條件不大可能改變時,使用v-if嗦嗡。

3勋锤、v-else:必須跟著v-if或者v-show,充當else功能侥祭。

<div id="example">
        <p v-if="ok">yes</p>
        <p v-else="ok">no</p>
    </div>
    <script>
        var exampleVM2 = new Vue ({
            el:'#example',
            data: {
                ok:'false'
            }
        })
    </script>

4叁执、v-model:用來在input、select矮冬、text谈宛、checkbox
、radio等表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定胎署。

<form id="example">
    姓名:
        <input type="text" name="" v-model="data.name" placeholder="">
        <br>
  性別:
  <input type="radio" name="" id="man" value="One" v-model="data.sex">
  <label for="man">男</label>
    <input type="radio" name="" id="male" value="Two" v-model="data.sex">
    <label for="male">女</label>
    <br>
    興趣:
  <input type="checkbox" id="book" value="book" name="" v-model="data.interest">
    <label for="book">閱讀</label>
    <input type="checkbox" id="swim" value="swim" name="" v-model="data.interest"> 
    <label for="swim">游泳</label>
    <input type="checkbox" id="game" value="game" name="" v-model="data.interest">
    <label for="game">游戲</label>
    <input type="checkbox" id="song" value="song" name="" v-model="data.interest">
    <label for="song">唱歌</label>
    身份:
    <select v-model="data.job">
        <option value="teacher">教師</option>
        <option value="doctor">醫(yī)生</option>
        <option value="police">警察</option>
    </select>
    </form>
    <script>
        new Vue ({
            el:'#example',
            data: {
                    data: {
                        name:"",
                        sex:"",
                        interest:[],
                        job:''
                    }
                }
            }
        })
    </script>

v-model后面可以添加多個參數(shù)(number吆录、lazy、debounce)

<div id="example">
    <input type="text" name="" v-model="msg" lazy>
    {{msg}}
 </div>
    <script>
        var Vue({
            el:'#example',
            data: {
                msg: 'change事件之后改變'
            }
        })
    </script>
<div id="example">
    <input type="text" name="" v-model="msg" debounce=""5000>
    {{msg}}
 </div>
    <script>
        var Vue({
            el:'#example',
            data: {
                msg: '5000s之后改變'
            }
        })
    </script>

5琼牧、v-for : 基于源數(shù)據(jù)重復渲染元素

(1)可以使用$index來呈現(xiàn)相對應的數(shù)組索引恢筝。v-for需要特殊的別名哀卫,形式為“item in items”,(item是數(shù)據(jù)數(shù)組撬槽,item是當前數(shù)組元素的別名)此改。

(2)v-for遍歷一個對象,每一個重復的實例都將有一個特殊的屬性$Key侄柔,或者給對象的鍵值提供一個別名带斑。

<div id="example">
     <ul id="repeat-object">
        <li v-for="value in primitiveValues">{{ $key }} : {{ value }}</li>
        <li>---------</li>
        <li v-for="( key, item ) in objectValues">{{ key }} : {{ item.msg }}</li>
     </ul>
    </div>
    <script>
        var demo = new Vue ({
            el:'#repeat-object',
            data: {
                primitiveValues: {
                    FirstName: 'A',
                    LastName: 'a',
                    Age: 10
                },
                objectValues: {
                    one: {
                        msg: 'Hello'
                    },
                    two: {
                        msg: 'World'
                    }
                }
            }
        })
    </script>

(3)v-for支持整數(shù)

<div id="range">
        <div v-for="n in 10">整數(shù):{{ $index }}</div>
    </div>

6、v-text :可以更新元素的textContent勋拟,在內(nèi)部,{{ Mustache }}插值也被編譯為textNode的一個v-text指令妈候。

<span v-text="msg"></span>
<br>
<span>{{ msg }}</span>

7敢靡、v-bind:用于響應更新HTML特性,將一個或多個attribute苦银,或者一個組件prop動態(tài)綁定到表達式啸胧。

(1)綁定class或者style,支持其他類型的值幔虏。

<div id="example">
        <div : class = "[ classA , { classB:isB , classC:isC }]"></div>
    </div>
    <script>
        var demo = new Vue ({
            el:'#example',
            data: {
                classA: 'A',
                isB: false,
                isC: true
            }
        })
    </script>

(2)沒有參數(shù)時纺念,可以綁定到一個對象,此時的class和style綁定不支持數(shù)組和對象(key會轉換成小寫)想括。

<div id="example">
        <div v-bind="{ id:someProp, 'OTHERAttr': otherProp }"></div>
    </div>
    <script>
        var exampleVM2 = new Vue ({
            el:'#example',
            data: {
                someProp: 'idName',
                otherProp: 'prop'
            }
        })
    </script>

8陷谱、v-on : 用于綁定事件監(jiān)聽器,類型由參數(shù)指定瑟蜈。

<!--方法處理器-->
<button v-on:click="doThis"></button>
<!--內(nèi)聯(lián)語句-->
<button v-on:click="doThat('hello',$event)"></button>
<!--縮寫-->
<button @click="doThis"></button>

后面可以增加修飾符:

  • .stop —— 調(diào)用event.stopPropagation()烟逊。
  • .prevent —— 調(diào)用event.preventDefault()。
  • .capture —— 添加事件偵聽器時使用capture模式铺根。
  • .self —— 只當事件是從偵聽器綁定的元素本身觸發(fā)時才會出發(fā)回調(diào)宪躯。

9、v-pre : 編譯時跳過當前元素和它的子元素位迂。

自定義指令

1访雪、指令實例屬性
el:指令綁定的元素。
vm:擁有該指令的上下文ViewModel
expression:指令的表達式掂林,不包括參數(shù)和過濾器臣缀。
arg:指令的參數(shù)。
name:指令的名字党饮。
modifiers:一個對象肝陪,包含指令的修飾符。
descriptor:一個對象刑顺,包含指令的解析結果氯窍。

 <div id="example" @click="up" >
    <div id="demo" v-demo:hello.a.b="msg">
    </div>
 </div>
 <script>
    Vue.directive('demo',{
        bind: function(){
            console.log('demo bound');
        },
        update: function(value){
            this.el.innerHTML = 
            'name - ' + this.name + '<br>' + 'expression - ' + this.expression + '<br>' + 'argument - ' + this.arg + '<br>' + 'modifiers - ' + JSON.stringify(this.modifiers) + '<br>' + 'value - ' + value + '<br>' + 'vm-msg' + this.vm.msg
        }
    })
    var demo = new Vue ({
        el:'#example',
        data: {
            msg: 'hello'
        },
        methods: {
            up: function() {
                console.info("click");
            }
        }
    })
 </script>
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔗怠,一起剝皮案震驚了整個濱河市瞒滴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖胜臊,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異趟紊,居然都是意外死亡椒振,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門布隔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來离陶,“玉大人,你說我怎么就攤上這事衅檀≌信伲” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵哀军,是天一觀的道長沉眶。 經(jīng)常有香客問我,道長杉适,這世上最難降的妖魔是什么谎倔? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮猿推,結果婚禮上片习,老公的妹妹穿的比我還像新娘。我一直安慰自己彤守,他們只是感情好毯侦,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著具垫,像睡著了一般侈离。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筝蚕,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天卦碾,我揣著相機與錄音,去河邊找鬼起宽。 笑死洲胖,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的坯沪。 我是一名探鬼主播绿映,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了叉弦?” 一聲冷哼從身側響起丐一,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淹冰,沒想到半個月后库车,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡樱拴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年柠衍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晶乔。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡珍坊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出正罢,到底是詐尸還是另有隱情垫蛆,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布腺怯,位于F島的核電站,受9級特大地震影響川无,放射性物質發(fā)生泄漏呛占。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一懦趋、第九天 我趴在偏房一處隱蔽的房頂上張望晾虑。 院中可真熱鬧,春花似錦仅叫、人聲如沸帜篇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笙隙。三九已至,卻和暖如春坎缭,著一層夾襖步出監(jiān)牢的瞬間竟痰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工掏呼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坏快,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓憎夷,卻偏偏與公主長得像莽鸿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拾给,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

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

  • 1.安裝 可以簡單地在頁面引入Vue.js作為獨立版本祥得,Vue即被注冊為全局變量兔沃,可以在頁面使用了。 如果希望搭建...
    Awey閱讀 11,034評論 4 129
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容啃沪,還有我對于 Vue 1.0 印象不深的內(nèi)容粘拾。關于...
    云之外閱讀 5,052評論 0 29
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,221評論 0 6
  • vue.js官網(wǎng)教程學習筆記和學習摘要 起步 安裝 一個簡單的方法,直接把一個vue.js引入你的HTML頁面中创千,...
    恰皮閱讀 3,386評論 2 22
  • 【日精進打卡持續(xù)第4天】 【知-學習】 1.背讀《六項精進大綱》1遍缰雇,累計5遍 背誦《大學》3遍,累計9遍 2.學...
    沁舒閱讀 163評論 0 0