vue入坑第二天,隨筆

事件監聽

v-on:click=“函數或語句”   
例如
 <ul >
        <li >{{num}}<br></li>
        <button v-on:click="num+=1">Num++</button>
      </ul>

 實現最簡單的事件監聽。
 當然,在現實生活中,你的事件不可能是這麼簡單的,所以,我們來一段更復雜的事件監聽。

  <button v-on:click="handlerClick">Num++</button>

  methods:{
    handlerClick(){
      alert("我是事件")
    }
  }

 上面代碼,我們在methods裏創造了一個函數,methods是一個與data同級的對象,它裏面的函數也都是對象。這裏的methods的s帶表很多個的意思。函數在監聽使用時不需要加括號,加括號就執行了。
 我們的事件也可以改變狀態:

handlerClick(){
          this.show=!this.show;
    }

 要用this索引data中的關鍵字。那麼this到底是誰呢?
 當我們打印出來this,他指代的是vue組件本身,就是在這個組件本身上去找你的狀態。
 接下來,我們做一些更深入的事情。先創建一個新的vue文件。這裏簡單說明下vue頁面的三個基本標籤。
 承載vue視圖的部分, template 標籤,js部分 script標籤,樣式部分 style標籤。
 注意的是,template只能有一個跟容器。script裏面裝的是
裏面加上  data(){return{}}  就完整了
 直接上代碼部分

<template>

    <div class="tab1_wrap">

    </div>
</template>

<script>
export default {
data(){
    return{

    }
}
</script>

<style >


</style>

 談到了,導出,我們就說一說一個組件怎麼能被外部所訪問。當它需要被訪問時,在訪問者組件裏的script寫上 import 組件名 from "路徑"  我們千萬不要寫到,export 裏面,因爲那是要被導出的,引入的不需要被導出。當然,我們還要綁定他,comprnents:{組件名}
 下面我,我們用監聽傳參。

事件參數

<ul>
        <li v-on:click="getname(names.name)" v-for="names in name">{{names.name}}}</li>
      </ul>
      <p>額外的內容{{biu}}</p>
      methods:{
        getname(data){
          this.biu=data;
          }
    }

 因爲vue使用的虛擬dom,這些標籤都是jsx對象,他們所綁定的數據,可以用上面的方式獲取。
這裏的數據,不用拘泥標籤的限制。
 參數倒是傳遞過來了,可是event對象呢?事件默認的對象咋辦?只需要在函數裏 增加     event 這個參數就可以了。(Event 對象代表事件的狀態,比如事件在其中發生的元素、鍵盤按鍵的狀態、鼠標的位置、鼠標按鈕的狀態)

<li v-on:click="getname(names.name,$event)" v-for="names in name">{{names.name}}}</li>

event 對象,在函數那邊被傳遞之前,一定要在標籤裏先$定義一下,要不會顯示未定義。

事件修飾符

 stop     阻止事件冒泡
 prevent  阻止默認事件
 once     只生效一次
 

<li v-on:click.stop="getname(names.name,$event)" v-for="names in name">{{names.name}}}</li>

按鍵修飾符

 監聽鍵盤事件,keyup是我們從前的方法,現在我們用綁定他
 

  <input type="text" v-on:keyup="getname($event)">

 控制檯會顯示這段 KeyboardEvent {isTrusted: true, key: “F1”, code: “F1”, location: 0, ctrlKey: false, …}
 
 這裏,vue爲我們提供了常用的鍵位監聽,用法同事件修飾符
 .enter
 .tab
 .delete(捕獲 “刪除”和“退格”鍵)
 .esc
 .space
 .up
 .down
 .left
 .right

<input type="text" v-on:keyup.enter="getname($event)">

 當前,只有你在敲回車時,纔會觸發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章