切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
HTML
正则表达式
Json
包管理工具
vite
CSS
XPath
JavaScript
Jquery
less
ES6
Vue
React
vue 3
Layui
editor.md
sea.js
Zepto.js
mysql.js
mssql.js
NodeJs
Express
前端template
YAML
杂项
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
前端
Vue自定义全局指令和私有指令
[TOC] ## Vue自定义全局指令和私有指令 ### vue使用Vue.directive()定义全局指令 + Vue.directive('focus')第一个参数是指令的名称,名称前面不需要加v-开头 + Vue.directive('focus',{})第二参数是一个对象,在对象里面有指令相关的处理函数 - `bind:function(el){}:`每当指令绑定到元素上时,就会调用bind方法,只执行一次,bind执行的时间在元素渲染到浏览器之前,这时元素还没放到DOM中去,因此我们在bind函数中调用DOM的方法是无效的,DOM操作不了但是bind函数可以执行一些预定设置,例如样式的设置,当浏览器发现元素显示在页面上时,浏览器渲染引擎必定会解析样式,并应用给元素,所以和样式相关联的操作我们可以放在bind函数中来执行 - `inserted:function(el){}:`元素被插入到DOM中的时候会执行inserted函数,仅触发一次 - `updated:function(el){}:`当VNode(Vue 编译生成的虚拟节点)更新的时候会执行updated函数,可触发多次 指令对象中函数的参数el就是绑定这个指令的这个元素,是一个原生的js对象即DOM对象,参数binding是一个对象,它包含了自定义指令的信息 + vue中的指令调用都以v-开头,所以我们自定义的指令调用也需要以v-作为前缀开头如示例中的v-focus ### vue使用directives:{}定义私有指令 + directives可以定义多个私有指令,directives的定义方式和全局基本差不多,格式`directives:{'fontsize':{bind:function(el,binding){},……},……}` + 自定义指令还可以简写,当我们定义的指令只需要bind或updated函数时,可以简写成`directives:{'fontsize':function(el,binding){},……}`,这样写法等同于把方法放到了bind和updated中去 > **注意点**: 自定义指令的名称不能有大写字母,例如:v-bColor,浏览器会提示错误:Failed to resolve directive: bColor 具体使用看下面的示例 ```html <html> <hred> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0, maximun-scale=1.0, minimun-scale=1.0"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/4.5.3/css/bootstrap.min.css"> <script src="https://cdn.bootcss.com/vue/2.5.2/vue.js"></script> </hred> <div id="app"> <h3>进入页面就让输入框获取到焦点</h3> <input type="text" class="form-contorl" v-focus /> <h3 v-bcolor="'#ddd'" v-color="'red'" v-fontitalic="'italic'">给我来点颜色</h3> </div> <script type="text/javascript"> Vue.directive("focus", { inserted: function (el) { el.focus() }, }) Vue.directive("color", { bind: function (el, binging) { el.style.color = binging.value } }) var vm = new Vue({ el: "#app", data: { }, methods: {}, directives: { "bcolor": { bind: function (el, binding) { el.style.backgroundColor = binding.value } }, "fontitalic": function (el, binding) { console.log(binding) el.style.fontStyle = binding.value } } }) </script> </html> ```
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号