這篇文章主要介紹了vue自訂指令directive的相關資料,以下透過實例給大家介紹,需要的朋友可以參考下
下面給大家介紹vue自訂指令directive,具體內容如下所示:
#官網截圖實例
vue除了一些核心的內部定義的指令(v-model,v-if,v-for,v-show
)外,vue也允許用戶註冊自己的一些功能性的指令,有時你實在是要對Dom操作,這個時候是自定義指令最適合的了。
來直接看例子:當頁面載入時使得元素獲得焦點(autofocus 在行動版Safari 是不支援的),就是當頁面載入好了,不做任何的動作使得表單自動取得焦點,遊標自動在某個表單上程式碼如下:
Vue.directive('zsqfocus', { // 注册一个全局自定义指令 `v-zsqfocus`,在main.js文件里 inserted: function (el) { // 当被绑定的元素插入到 DOM 中时自动调用 el.focus() // 聚焦元素 } })
如果想註冊局部指令,元件中也接受一個directives 的選項:
<script> export default { directives: { // 指令的定义 zsqfocus: { inserted: function (el) { // 获得焦点 el.focus() } } } } </script>
然後你可以在範本中任何元件上使用新的v-zsqfocus 屬性,如下:
<template> <input v-zsqfocus /> //调用 </template>
舉了一個跟官網一樣的例子,directives跟methods,mounted等是一個級別的可以同時使用。
PS:下面看下vue之自訂指令directive的實例程式碼,具體程式碼如下所示:
<template> <p> <input v-model="dir1" v-my-directive1="dir1"/> <input v-model="dir2" v-my-directive2="dir2"/> </p> </template> <script> export default { data(){ return { dir1:'', dir2:'' } }, directives:{ //直接绑定函数,作用等同于update,不做准备工作和扫尾工作 myDirective1(val){ console.log(val) }, myDirective2:{ bind(){ //第一次绑定到元素的准备工作 }, update(val,old){ //在绑定到元素后立即以初始值第一次调用,然后每次example2变化都会调用update console.log(val) }, unbind(){ //销毁前的清理工作 } } } } </script>
上面是我整理給大家的,希望今後對大家有幫助。
相關文章:
##########################################################################################################################################################################################################1在Node.js中使用Async和Await函數############解決webpack無法存取127.0.0.1的問題############在webpack-dev-server中實作遠端存取配置方法######以上是在vue中如何開發自訂指令directive的詳細內容。更多資訊請關注PHP中文網其他相關文章!