2021-11-29 vue5

一:v-model指令

   1.    v-model指令默認觸發(fā)的是input事件,當(dāng)文本框的值發(fā)生變化后沟使,離開同步給數(shù)據(jù) 
       添加了.lazy修飾符,可以將input事件轉(zhuǎn)為change事件 
       .trim修飾符,用于去掉內(nèi)容的首尾空格 
        <div>
            姓名:<input type="text" v-model.lazy.trim="name">開始{{name}}結(jié)束
        </div>
   2.    v-model綁定一組單選框馆揉,每個單選框指定相同的屬性   
            性別:
            <input v-model="sex" type="radio" value="男" name="sex">男
            <input v-model="sex" type="radio" value="女" name="sex">女
            <span style="color: red">{{sex}}</span>
        </div>
   3.    .number修飾符,會自動將你的輸入轉(zhuǎn)為number
            年齡:<input type="text" v-model.number="age">{{age+20}}
        </div>
  4.    v-model綁定單個復(fù)選框抖拦,綁定一個boolean值 
            是否同意:<input type="checkbox" v-model="isOk">{{isOk}}
        </div>
   5.   v-model綁定多個個復(fù)選框升酣,綁定同一個數(shù)組
愛好:
            <input v-model="hobbies" type="checkbox" value="抽煙">抽煙
            <input v-model="hobbies" type="checkbox" value="喝酒">喝酒
            <input v-model="hobbies" type="checkbox" value="燙頭">燙頭
            <input v-model="hobbies" type="checkbox" value="打游戲">打游戲
            <input v-model="hobbies" type="checkbox" value="敲代碼">敲代碼
            <input v-model="hobbies" type="checkbox" value="睡覺">睡覺
            <input v-model="hobbies" type="checkbox" value="看電影">看電影
            <span style="color: red;">{{hobbies}}</span>
</div> 
   6.  綁定一個屬性  
 ```   <div>
        <!-- 綁定一個數(shù)組 -->
        喜歡的食物:
        <select multiple v-model="foods">
            <option value="蘋果">蘋果</option>
            <option value="面包">面包</option>
            <option value="香蕉">香蕉</option>
            <option value="蛋糕">蛋糕</option>
            <option value="草莓">草莓</option>
            <option value="咖啡">咖啡</option>
            <option value="葡萄">葡萄</option>
        </select>
        {{foods}}
    </div>


##二、綁定事件
    1.   @是v-on:的簡寫态罪,通過v-on:指令綁定事件噩茄,指定一個methods選項里面的定義的方法, 調(diào)用方法時复颈,不傳參數(shù)绩聘,默認會將事件對象作為參數(shù)傳遞 
v-on:事件名.修飾符 = 方法名() | 方法名 | 簡單的JS表達式
簡寫: @事件名.修飾符 = 方法名() | 方法名 | 簡單的JS表達式
事件名: click|keydown|keyup|mouseover|mouseout|自定義事件名
修飾符: .stop | .prevent | .once | .self | .left | .right | .middle | .up| .down | .keyCode | .keyAlias | .native | .passive
示例:
```<button @click="sayHi">sayHi</button> ```

調(diào)用方法時,傳遞是什么參數(shù)耗啦,接的就是什么參數(shù)
```<button @click="sayHello('hello')">sayHello</button>

調(diào)用方法時凿菩,傳遞一個$event參數(shù),該參數(shù)就是事件對象
```<button @click="sayNice('Nice',$event)">sayNice</button>```

2. 事件綁定類型
//單事件帜讲、單方法
v-on:事件名.修飾符 = "方法名()" | "方法名" | "簡單的JS表達式"

//單事件衅谷、多方法
v-on:事件名.修飾符 = "[方法名1(), 方法名2()]"

//多事件、多方法
v-on:事件名1.修飾符=方法名1 v-on:事件名2.修飾符=方法名2 
v-on = "{'事件名1':方法名1似将, '事件名2':方法名2}"

3.原理: 既不是屬性賦值获黔,也不是事件監(jiān)聽,完成的是事件的回調(diào)
<p id="p2" v-on:click="show()">vue事件解釋</p>

 //v-on會默認為綁定事件提供一個默認函數(shù)在验,事件賦值只是將賦值的函數(shù)作為默認函數(shù)的內(nèi)部的回調(diào)函數(shù)進行執(zhí)行
 //為了讓事件和vue對象產(chǎn)生關(guān)聯(lián)
let pDom2=document.getElementById("p2");
pDom2.addEventListener("click",function(){
   show();
})

4.參數(shù)傳遞
事件的參數(shù)傳遞: 遵循JS的方法傳參規(guī)則玷氏,同時可取vue實例倉庫的變量

頁面方法綁定時的 參數(shù) this:會被vue直接重寫為指向于 window的對象

vue 將事件源對象 封裝成了 $event,事件源為$event.target
```<input type="button" value="傳遞參數(shù)event" v-on:click="printEvent($event)">```


5.     (1)當(dāng)前事件處理的代碼比較簡單時腋舌,可以將代碼直接寫在行內(nèi)盏触,注意:只能操作Vue管理的數(shù)據(jù)
```  <button @click="age++">年齡++</button>      ```

   (2)事件修飾符.prevent,用于阻止默認行為
```<div class="box" @contextmenu.prevent="showbox">
            box
        </div>
(3).once块饺,用只綁定一次事件方法
  <div class="one" @click.once="one">

(4).stop赞辩,用于阻止事件冒泡

   <div class="two" @click.stop="two"></div>

(5).self,只能在自身元素上觸發(fā)刨沦,不同在子元素上觸發(fā)

   <div class="box2" @click.self="showbox2">  
                 <div class="box3"></div>
   </div>

(6)每次鍵盤彈起都會調(diào)用事件方法

       <div>
            請輸入搜索關(guān)鍵字:<input type="text" @keyup="keyup">
        </div>

(7)只在回車時诗宣,才會調(diào)用事件方法

         <div>
            請輸入搜索關(guān)鍵字:<input type="text" @keyup.enter="keyup1">
        </div>

(8) //阻止默認行為
// e.preventDefault()

(9) // 阻止事件冒泡
// e.stopPropagation();

三、深度響應(yīng)式

例子:

   <div id="app">
        <div>
            姓名:<input type="text" v-model="name">{{name}}
        </div>
        <div>
            學(xué)生信息:
            <input type="text" v-model="obj.name">
            <input type="text" v-model.number="obj.age">
            <button @click="addSex">添加性別</button>
            <button @click="delAge">刪除年齡</button>
            <br>
            {{obj}}
        </div>
        <div>
            數(shù)組:{{arr}}
            <button @click="addArr">添加數(shù)據(jù)</button>
            <button @click="delArr">刪除數(shù)據(jù)</button>
        </div>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.js"></script>
    <script>
        Vue.config.productionTip = false
        let vm = new Vue({
            el:'#app',
            data:{
                //基本類型數(shù)據(jù)
                name:'張三',
                //對象類型數(shù)據(jù)
                obj:{
                    name:'張三',
                    age:20,
                },
                arr:[11,22,33,44,55]
            },
            methods: {
                //添加性別
                addSex(){
                    // obj對象里面的每一個屬性想诅,都會采用Object.defineProperty去封裝召庞,實現(xiàn)響應(yīng)式
                    // 所謂響應(yīng)式岛心,指的是,數(shù)據(jù)發(fā)生變化后篮灼,頁面自動更新忘古。
                    // 給對象后添加的數(shù)據(jù)不會采用Object.defineProperty去封裝,所以诅诱,就失去了響應(yīng)式髓堪。
                    // this.obj.sex = '男'
                    // vue通過$set方法,給對象添加響應(yīng)式屬性
                    this.$set(this.obj,'sex','男')
                },
                //刪除年齡
                delAge(){
                    // 采用delete關(guān)鍵字刪除對象的屬性后娘荡,也沒有觸發(fā)頁面更新
                    // delete this.obj.age
                    // vue通過$delete方法干旁,刪除對象的屬性,并觸發(fā)響應(yīng)式
                    this.$delete(this.obj,'age')
                },
                //添加數(shù)組的數(shù)據(jù)
                addArr(){
                    // this.arr[5] = 66  //注意:采用這種方式炮沐,不會觸發(fā)頁面更新
                    // 在vue中争群,操作數(shù)組,并觸發(fā)頁面更新只能使用數(shù)組的以下方法:
                    // push,pop,unshift,shift,splice,reseolve,sort
                    // this.arr.push(66)
                    // 如果想通過下標操作數(shù)組大年,也必須要使用$set和$delete方法
                    this.$set(this.arr,5,66)
                },
                delArr(){
                    // this.arr.splice(2,1)
                    this.$delete(this.arr,2)
                }
            },
        })
    </script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末换薄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子翔试,更是在濱河造成了極大的恐慌轻要,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垦缅,死亡現(xiàn)場離奇詭異冲泥,居然都是意外死亡,警方通過查閱死者的電腦和手機失都,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門柏蘑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幸冻,“玉大人粹庞,你說我怎么就攤上這事∏⑺穑” “怎么了庞溜?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碑定。 經(jīng)常有香客問我流码,道長,這世上最難降的妖魔是什么延刘? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任漫试,我火速辦了婚禮,結(jié)果婚禮上碘赖,老公的妹妹穿的比我還像新娘驾荣。我一直安慰自己外构,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布播掷。 她就那樣靜靜地躺著审编,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歧匈。 梳的紋絲不亂的頭發(fā)上垒酬,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音件炉,去河邊找鬼勘究。 笑死,一個胖子當(dāng)著我的面吹牛斟冕,可吹牛的內(nèi)容都是我干的乱顾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宫静,長吁一口氣:“原來是場噩夢啊……” “哼走净!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起孤里,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤伏伯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后捌袜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體说搅,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年虏等,在試婚紗的時候發(fā)現(xiàn)自己被綠了弄唧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡霍衫,死狀恐怖候引,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情敦跌,我是刑警寧澤澄干,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站柠傍,受9級特大地震影響麸俘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惧笛,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一从媚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧患整,春花似錦拜效、人聲如沸炭懊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侮腹。三九已至,卻和暖如春稻励,著一層夾襖步出監(jiān)牢的瞬間父阻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工望抽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留加矛,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓煤篙,卻偏偏與公主長得像斟览,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辑奈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

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