vue 的v-on與v-bind
v-on就是用於繫結事件的
例如 有個按鈕,我想點選的時候執行一些操作
<div class="app">
<button v-on:click="myclick">click me</button>
</div>
注意:後面的值是一個方法,可以寫成myclick(),如沒有引數也可以寫成myclick。另外這種事件對應的方法不是定義在data裡面,而是定義在vue例項的methods裡
var app = new Vue({
el:'.app',
data:{
},
methods:{
myclick:function(){
console.log(111111);
}
}
});
v-on可以繫結多個事件
<div class="app">
<button v-on="{mouseenter:onenter,mouseleave:leave}">click me</button>
</div>
<div class="app">
<button v-on:mouseenter='onenter' v-on:mouseleave='leave'>click me</button>
</div>
<div class="app">
<button v-on:mouseenter='onenter' v-on:mouseleave='leave' v-on:click="myclick">click me</button>
</div>
<div class="app">
<button v-on="{mouseenter:onenter,mouseleave:leave}" v-on:click="myclick">click me</button>
</div>
當繫結多個事件時,需要傳入一個物件,物件的鍵名就是事件名,物件的鍵值就是對應事件要執行的方法。注意在vue例項中方法一定要有,不然就報錯。
var app = new Vue({
el:'.app',
data:{
},
methods:{
myclick:function(){
console.log("clicked");
},
onenter:function(){
console.log("mouseented");
},
leave:function(){
console.log("mouseleaved");
}
}
});
在繫結form表單中的提交事件時
<div class="app">
<form v-on:submit='onSubmit($event)'>
<!-- $event是vue裡面的事件物件,vue能認識 -->
<input type="text" >
<button type="submit">提交</button>
</form>
</div>
<scripe>
var app = new Vue({
el:'.app',
data:{
},
methods:{
onSubmit:function(e){
e.preventDefault();
//阻止瀏覽器的預設行為,因為在表單提交的時候,瀏覽器會預設傳送一個get或者post請求到指定頁面,重新整理整個頁面。
console.log("onSubmited");
}
}
});
</scripe>
注意:
$event是vue裡面的事件物件,vue能認識
在表單提交的時候,瀏覽器會預設傳送一個get或者post請求到指定頁面,重新整理整個頁面。阻止瀏覽器的預設行為,可以用事件物件e.preventDefault();
像上述form表單提交的這種瀏覽器預設事件,其實vue也想到了,它封裝好了,只要在事件的後面新增一個.prevent修飾符,表示阻止預設事件。
<div class="app">
<form v-on:submit.='onSubmit'>
<input type="text" >
<button type="submit">提交</button>
</form>
</div>
var app = new Vue({
el:'.app',
data:{
},
methods:{
onSubmit:function(){
console.log("onSubmited");
}
}
});
繫結事件中,除了prevent阻止預設事件,還有stop,表示停止冒泡事件
另外,當我們繫結的事件是keyup、keypress、keydown鍵盤事件時,而且需要判斷按下是回車時。這在以前我們需要判斷事件物件的keyCode,雖然功能特別簡單,但是每次去寫還是特別麻煩。vue也想到了這點,只需要在鍵盤事件後面新增一個.enter修飾符即可。
<div class="app">
<div v-on:keydown.enter='mykeydownFn'>
</div>
</div>
另外跟v-bind一樣,v-on也有快捷方式:
v-on:事件名 可以簡寫為 @事件名,如
<div class="app">
<div @keydown.enter='mykeydownFn'>
</div>
</div>
作者:jCodeLife
連結:https
v-bind用於繫結資料和元素屬性
例如:繫結a標籤的href屬性
<div class="app">
<a v-bind:href="url">click me</a>
</div>
var app = new Vue({
el:'.app',
data:{
url:"https://www.baidu.com",
}
});
以上程式碼中,使用v-bind繫結了a標籤的href屬性,當a標籤被點選時,會根據對應vue中的對應的url資料進行跳轉到https://www.baidu.com
不光是href屬性可以被v-bind指令繫結,任何屬性都可以被繫結
例如,繫結src屬性、class屬性
<div class="app">
<a v-bind:href="url" v-bind:class="klass">click me</a>
<img v-bind:src="imgsrc">
</div>
```javascripe
var app = new Vue({
el:'.app',
data:{
url:"https://www.baidu.com",
imgsrc:"https://cn.vuejs.org/images/logo.png",
kclass:"btn btn-default"
}
});
上述程式碼中,同時繫結了a標籤的href屬性和class屬性,以及img標籤的src屬性,其資料分別對應data裡中的資料
也許你會奇怪,為什麼它會知道a標籤的href值url對應的就是data中的url?這其實就是vue背後的一種預設機制,它就是知道。但需要注意他們的名字得對應
用v-bind的繫結的屬性的值也可以是一個物件,例如:
<div class="app">
<a v-bind:class="{active:isActive}">click me</a>
</div>
以上程式碼,active表示要新增的類名,isActive對應vue中的資料,表示在什麼情況下新增該類名,對應isActive為真才新增active類
由於使用頻繁,通常將v-bind:屬性名=" “的格式簡寫成:屬性名=” "
<div class="app">
<a :class="{active:isActive}">click me</a>
</div>
以上是v-bind基本使用!
作者:jCodeLife
連結:https://www.jianshu.com/p/3515e5aa3ade
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- [Vue] One Object to Rule Them All (v-bind & v-on syntax)VueObject
- vue 基礎入門筆記 01:Vue 基本程式碼、插值表示式、v-on、v-bindVue筆記
- 【譯】Vue 的小奇技(第五篇):使用 v-bind 和 v-on 打造自適應元件Vue元件
- vue.js指令與事件(v-bind)Vue.js事件
- Vue(6)v-on指令的使用Vue
- vue指令v-bindVue
- 前端【VUE】02-vue指令【v-html 、v-show、 v-if 、v-else、v-on、v-bind、v-for、v-model】前端VueHTML
- 動態元件與v-on元件
- vue中v-on繫結多個方法Vue
- vue.js繫結事件監聽器(v-on)Vue.js事件
- petite-vue原始碼剖析-事件繫結`v-on`的工作原理Vue原始碼事件
- Vue.js從0到1:v-bind指令Vue.js
- vue學習筆記(一)---- vue指令( v-bind 屬性繫結 )Vue筆記
- v-bind
- Elements in iteration expect to have ‘v-bind:key‘ directives.eslint-plugin-vueEsLintPluginVue
- Custom elements in iteration require ‘v-bind:key‘ directives vue/valid-v-forUIVue
- 四. v-on指令
- petite-vue原始碼剖析-屬性繫結`v-bind`的工作原理Vue原始碼
- Vue3 中的 v-bind 指令:你不知道的那些工作原理Vue
- Vue知識點總結(3)——v-bind(超級詳細)Vue
- v-on 繫結事件事件
- v-bind=變數變數
- Vue.js基礎學習(三) -------------動態繫結v-bind的介紹和使用Vue.js
- v-on 及其事件修飾符事件
- v-bind 動態更新 HTML 元素上的屬性HTML
- Vue.set與vue.$set的使用Vue
- Vue的安裝與配置Vue
- vue 的 class 與 style 使用Vue
- vue與react元件的思考VueReact元件
- Vue中scoped與CSSModules的用法VueCSSSSM
- vue2與vue3的差異(總結)?Vue
- vue(17)vue-route路由管理的安裝與配置Vue路由
- vue3 區別於 vue2 的“與眾不同”Vue
- Vue2與Vue3的元件通訊對比Vue元件
- Vue 中ref()與 reactive() 的區別VueReact
- vue中sass與SCSS的區別VueCSS
- Vue的viewUI框架安裝與使用VueViewUI框架
- vue(22)Vuex的安裝與使用Vue