Vue 自定義元件directive使用總結
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<title>自定義元件directive</title>
</head>
<body>
<div id="test">
</div>
<script>
/*
1、一個指令定義物件可以提供如下幾個鉤子函式 (均為可選):
bind:只呼叫一次,指令第一次繫結到元素時呼叫。在這裡可以進行一次性的初始化設定。
inserted:被繫結元素插入父節點時呼叫 (僅保證父節點存在,但不一定已被插入文件中)。
update:所在元件的 VNode 更新時呼叫,但是可能發生在其子 VNode 更新之前。指令的值可能發生了改變,也可能沒有。但是你可以通過比較更新前後的值來忽略不必要的模板更新 。
componentUpdated:指令所在元件的 VNode 及其子 VNode 全部更新後呼叫。
unbind:只呼叫一次,指令與元素解綁時呼叫。
2、接下來我們來看一下鉤子函式的引數 (即 el、binding、vnode 和 oldVnode)。指令鉤子函式會被傳入以下引數:
el:指令所繫結的元素,可以用來直接操作 DOM。
binding:一個物件,包含以下 property:
name:指令名,不包括 v- 字首。
value:指令的繫結值,例如:v-my-directive="1 + 1" 中,繫結值為 2。
oldValue:指令繫結的前一個值,僅在 update 和 componentUpdated 鉤子中可用。無論值是否改變都可用。
expression:字串形式的指令表示式。例如 v-my-directive="1 + 1" 中,表示式為 "1 + 1"。
arg:傳給指令的引數,可選。例如 v-my-directive:foo 中,引數為 "foo"。
modifiers:一個包含修飾符的物件。例如:v-my-directive.foo.bar 中,修飾符物件為 { foo: true, bar: true }。
vnode:Vue 編譯生成的虛擬節點。
oldVnode:上一個虛擬節點,僅在 update 和 componentUpdated 鉤子中可用。
*/
Vue.directive("focus",{
bind(el,binding){
console.log("bind");
},
inserted(el,binding){
console.log("inserted");
el.focus();
}
})
Vue.component("ComponentA", {
template:`
<div>
這是元件A
<input type="text" v-focus></input>
</div>`,
});
const app = new Vue({
el:"#test",
template:`
<div>
<ComponentA></ComponentA>
</div>`,
data:{},
})
</script>
</body>
</html>
效果截圖:(自動鎖定效果截圖不到,需要實際執行看)
相關文章
- 深入解析Vue.directive 自定義指令Vue
- Angular 自定義結構型指令 structural directive 的使用AngularStruct
- Vue 自定義元件使用 v-modelVue元件
- 總結Vue第二天:自定義子元件、父子元件通訊、插槽Vue元件
- 自定義控制元件總結和思考控制元件
- vue 自定義元件tabbarVue元件tabBar
- Vue——關於自定義元件Vue元件
- vue 自定義報警元件Vue元件
- Vue自定義元件之v-model的使用Vue元件
- vue自定義全域性元件(或自定義外掛)Vue元件
- vue框架之自定義元件中使用v-modelVue框架元件
- vue.js自定義元件上使用v-modelVue.js元件
- 使用VUE元件建立SpreadJS自定義單元格(二)Vue元件JS
- 使用VUE元件建立SpreadJS自定義單元格(一)Vue元件JS
- vue自定義元件——search-boxVue元件
- vue自定義元件——split-paneVue元件
- Vue history 路由模式微信自定義分享總結Vue路由模式
- 面向Vue新人:使用Vue自定義指令來完善一個Select元件Vue元件
- Vue結合原生js實現自定義元件自動生成VueJS元件
- Vue + Element 自定義上傳封面元件Vue元件
- vue 自定義元件 v-model雙向繫結、 父子元件同步通訊Vue元件
- 080 元件自定義事件-繫結元件事件
- 初入小程式 | 文件使用 | 注意彙總 - 自定義元件元件
- Flutter Widget自定義總結Flutter
- 小程式自定義元件的使用元件
- Vuejs進階知識(二十四)【自定義Directive】VueJS
- vue3中ref繫結自定義元件沒有獲取到domVue元件
- 前端 | 自定義元件 v-model:Vue 如何實現雙向繫結前端元件Vue
- 使用 defineNuxtComponent`定義 Vue 元件UXVue元件
- 自定義元件元件
- Vue自定義元件事件傳遞:EventBus部分Vue元件事件
- uniapp專案實踐總結(十六)自定義下拉重新整理元件APP元件
- 如何使用小程式自定義元件功能元件
- Avalonia的自定義使用者元件元件
- Vue 子元件呼叫父元件方法總結Vue元件
- VUE 使用總結Vue
- 自定義元件——TitleView元件View
- uni-app使用小程式自定義元件APP元件