vue指令以及dom操作详解


Posted in Javascript onMarch 04, 2017

“AngularJS 通过被称为 指令 的新属性来扩展 HTML。AngularJS 通过内置的指令来为应用添加功能。AngularJS 允许你自定义指令。”

这是我最初接触“指令”这个词。还记得那时候,ng大行其道的时候,我特别好奇怎么给一个div加一个"ng-app" 就能解决这么多问题。

后来随着前端工作的深入,我用了jq的data-attr并且学会了jq的插件使用。但,这这并不能让我把它“指令”联想到一块,后来插件需要给节点加个标示来显示某种“状态管理” 我用了class  例如:pending,loading-end.

但是感觉和样式混在一块总是感觉不自在,后来我直接添加一个自定义标签 例如:attr-pending,attr-loading-end,通过dom上的自定义标签来标示某个状态是否完成。

在这个时候,发现"attr-pending,attr-loading-end"与“ng-app,ng-html”什么的非常类似,才恍然大悟,其实“指令”也可以理解为"标识",而具体的逻辑与它无关,它只是一个“标识”罢了。至于,ng-repeat,ng-click  同样可以理解某个程序在dom上一个“标识” 程序通过它来挂载某个功能。

现在接触了vue,vue比ng在开发上来说代码量很明显少了很多,“指令”一般开发人员不需要自己来实现。但是如果是开发一套ui交互的组件,还是很需要它。

bind: 仅调用一次,当指令第一次绑定元素的时候。

update: 第一次是紧跟在 bind 之后调用,获得的参数是绑定的初始值;以后每当绑定的值发生变化就会被调用,获得新值与旧值两个参数。

unbind:仅调用一次,当指令解绑元素的时候。

1.指令的注册

指令跟组件一样需要注册才能使用,同样有两种方式,一种是全局注册:

Vue.directive('dirName',function(){
//定义指令
});

另外一种是局部注册:
new Vue({

directives:{


dirName:{




//定义指令


}

}
});

2.可在指令函数配置中直接修改DOM[支持数据驱动] input里面的值修改的时候#demo里面的vue也会自动同步

<!DOCTYPE html> 
<html> 
<head lang="en"> 
 <meta charset="UTF-8"> 
 <title></title> 
 <script src="http://cdnjs.cloudflare.com/ajax/libs/vue/0.12.16/vue.min.js"></script> 
</head> 
<body> 
<div> 
  <p>展示vue指令----vue和元素dom操作的完美结合【拓展】</p> 
  <p>{{msg}}</p> 
  <input type="text" v-model="msg"> 
</div> 
<div id="demo" v-demo-directive="LightSlateGray : msg"></div> 
 
<script> 
 Vue.directive('demoDirective', { 
  bind: function () { 
   this.el.style.color = '#fff' 
   this.el.style.backgroundColor = this.arg 
  }, 
  update: function (value) { 
   this.el.innerHTML = 
     'name - '  + this.name + '<br>' + 
     'raw - '  + this.raw + '<br>' + 
     'expression - ' + this.expression + '<br>' + 
     'argument - ' + this.arg + '<br>' + 
     'value - '  + value 
  } 
 }); 
 var demo = new Vue({ 
  el: 'body', 
  data: { 
   msg: 'hello!' 
  } 
 }) 
 
</script> 
</body> 
</html>

官网链接: http://v1-cn.vuejs.org/guide/custom-directive.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
Jun 25 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
js实现的二分查找算法实例
Jan 21 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
瀑布流的实现方式(原生js+jquery+css3)
Jun 28 Javascript
JavaScript制作颜色反转小游戏
Sep 25 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
Jan 20 Javascript
Javascript for in的缺陷总结
Feb 03 Javascript
vue-resource调用promise取数据方式详解
Jul 21 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
Mar 04 #Javascript
详解在Vue中通过自定义指令获取dom元素
Mar 04 #Javascript
在javaScript中检测数据类型的几种方式小结
Mar 04 #Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
Mar 04 #Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 #Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 #Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
Mar 04 #Javascript
You might like
PHP 采集程序原理分析篇
2010/03/05 PHP
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
教师自我鉴定范文
2013/11/10 职场文书
党支部书记先进事迹
2014/01/17 职场文书
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
小学毕业教师寄语
2019/06/21 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS