VUE每日一学:Vue之常用的内置指令 - Web前端
作者:98wpeu发布时间:2026-08-30分类:网页前端技术浏览:17
导读:Vue每日一学:Vue之常用的内置指令。vue.js的各种指令(Directives)更加方便我们去数据驱动DOM,例如v-bind、v-on、v-model、v-if、v...

Vue每日一学:Vue之常用的内置指令。
vue.js 的各种指令(Directives)更加方便我们去数据驱动 DOM,例如
v-bind、v-on、v-model、v-if、v-for、v-once 等内置指令,这些指令的职责就是当表达式改变时将某些行为应用到 dom
上,尽量不去操作增删改 DOM。通过了解如何去自定义指令,可以想象内置指令是如何完成的。
内置指令
| 指令名称 | 描述 | 使用 |
|---|---|---|
| v-model | 绑定数据 | <\input v-model="message"> |
| v-text | 输出文本,不能解析标签 | <\p v-text="message"></p> |
| v-html | 输出文本,可解析标签 | <\p v-HTML="message">/p> |
| v-once | 只绑定一次数据 | <\p v-once >{{message}}</p> |
| v-bind | 绑定属性 | <\img v-bind:src="imgurl"> 或 <\img :src="imgurl"> |
| v-if | 控制是否显示容器 值转为布尔为false时 注释该容器,反之显示 | <\div v-if="true"></div> |
| v-show | 控制是否显容器,改变的时display:none/block | <\div v-show="true"></diiv> |
| v-for | 循环遍历数组、对象 | <\li v-for="(val,key) in arr">{{val}}</li> |
| v-cloak | 在还没有执行到vue代码的时候隐藏元素,可解决‘闪烁'问题 | <\p v-cloak>{{message}}</p> |
自定义指令
在需要特殊功能时,使用自定义指令对 DOM 进行底层操作
注册
自定义指令的注册分为全局注册和局部注册,类似组件的注册,只是方法名为 directive,写法如下:
// 全局注册 自定义指令
VUE.directive(‘mydir',{
// 指令选项
});
// 全局注册 自定义指令函数
Vue.directive('mydir', function () {
// 这里将会被 `bind` 和 `update` 调用
})
// 局部注册(只针对组件内元素)
Export default {
directives: {
mydir: {
// 指令选项
}
}
}需要注意的是:Vue.directive( ) 注册指令要在实例初始化 new Vue( ) 之前才能全局注册指令。定义指令时驼峰式写法会报错,所以一般小写。
指令选项
自定义指令的选项是由几个钩子函数(可选)组成,可以根据需求选择不同的钩子,例如使用全局注册一个指令时:
Vue.directive('mydir', {
bind: function () {
// 只调用一次,指令第一次绑定到元素时调用,用于在绑定元素时执行一次的初始化动作。
},
upDate: function () {
// 第一次是紧跟在 bind 之后调用,获得的参数是绑定的初始值,
// 之后被绑定元素所在的模板更新时调用,而不论绑定值是否变化,可以忽略不必要的模板更新。
},
inserted: function () {
// 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
},
componentUpdated: function () {
// 被绑定元素所在模板完成一次更新周期时调用。
},
unbind: function () {
// 只调用一次, 指令与元素解绑时调用。
}
})以上每个钩子函数都有几个参数可用:
el:指令所绑定的元素,可以用来直接操作 DOM;
binding:包含指令信息的一个对象;
vnode:Vue 编译的生成虚拟节点;
oldVnode:上一次的虚拟节点,仅在update和componentUpdated钩子函数中可用。
示例:
// 一个带自定义指令的元素
<div v-mytest:foo.m1.m2="1+1">MyDirective</div>
// 部分 JS 代码
export default {
directives:{
mytest: {
bind: function (el, binding, vnode) {
console.log(el)
console.log(binding)
console.log(vnode)
}
}
}
}
相关推荐
- 谷歌浏览器Google Chrome新版本给我们带来了哪些新体验? - Web前端
- 如何在 Windows PC 上安装 Linux - Web前端
- 码了六年代码,我为什么选择转岗做产品经理? - Web前端
- 微软将 Windows 终端设为默认的 Windows 11 命令行选项 - Web前端
- 学习CSS:使用 PostCSS 启用即将推出的 CSS 功能 - Web前端
- JS开发小应用:实现钱包余额数字跳动效果 - Web前端
- 您应该采用微前端架构的 5 个理由 - Web前端
- CSS3 2D转换:分享常用的5种【translate()、rotate()、scale()、skew()、matrix()】实现方式 - Web前端
- IOS响应式设计:如何去定位UI设计和前端布局 - Web前端
- 正则表达式每日一学:探讨边界\b和\B的基本知识和应用法则 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 5【第六章】Foundation之按钮和下拉功能 - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 8分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


