VUE中的v-el主要用來獲取DOM對象及其屬性。它用來和jQuery等DOM操作庫相結合的,可以方便地進行一些操作,比如添加class、獲取DOM元素的高寬等等。
Vue.directive('el', {
bind: function(el, binding, vnode) {
console.log(el); // 輸出的是DOM對象
console.log(vnode); // 輸出的是虛擬DOM對象
console.log(binding); // 輸出的是綁定的值
}
});
在上面的例子中,我們使用了Vue自定義指令來實現v-el指令。我們在bind函數中,獲取了DOM對象、虛擬DOM對象以及指令綁定的值,然后做出相應的操作。
VUE中的v-el不僅可以獲取DOM對象,還可以獲取DOM元素的屬性,比如下面這個例子:
<div id="app">
<input type="text" v-id:username="username">
</div>
var vm = new Vue({
el: '#app',
data: {
username: 'Tom'
}
});
console.log(vm.$els.username.value); // 打印出輸入框中的內容
在上面的例子中,我們使用v-id指令來獲取輸入框的DOM元素,然后使用vm.$els.username獲取DOM元素,進而獲取輸入框中的值。
在實際開發中,我們可能會遇到需要獲取父組件中的DOM對象的情況,這時候我們可以使用$refs來實現:
<template>
<div>
<child ref="mychild"></child>
</div>
</template>
var childComponent = {
data() {
return {
myContent: 'Hello World!'
};
},
template: '<div><p>{{myContent}}</p></div>'
};
var vm = new Vue({
el: '#app',
components: {
'child': childComponent
},
mounted() {
console.log(this.$refs.mychild.$el);//獲取子組件的 DOM 元素
console.log(this.$refs.mychild.myContent);//獲取子組件的數據
}
});
在上面的例子中,我們先在模板中定義了一個子組件,然后使用$refs來獲取子組件的DOM元素和數據,然后對子組件進行操作。
總結一下,Vue中的v-el指令用來獲取DOM對象及其屬性,可以和jQuery等DOM操作庫相結合,可以方便地進行一些操作。需要注意的是,在VUE2.0版本中,v-el指令已經被廢棄掉了,我們可以使用$refs來實現類似的功能。
上一篇python 畫股票圖
下一篇python 畫組合圖