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 相关文章推荐
JavaScript Base64编码和解码,实现URL参数传递。
Sep 18 Javascript
常用js字符串判断方法整理
Oct 18 Javascript
js实现延迟加载的方法
Jun 24 Javascript
jQuery原理系列-常用Dom操作详解
Jun 07 Javascript
js判断输入字符串是否为空、空格、null的方法总结
Jun 14 Javascript
使用伪命名空间封装保护独自创建的对象方法
Aug 04 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 Javascript
vue购物车插件编写代码
Nov 27 Javascript
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
详解vue 数据传递的方法
Apr 19 Javascript
vue props 一次传多个值实例
Jul 22 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/06/11 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
JsRender for object语法简介
2014/10/31 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
python多线程扫描端口示例
2014/01/16 Python
给Python初学者的一些编程技巧
2015/04/03 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
python自动发微信监控报警
2019/09/06 Python
Python实现点云投影到平面显示
2020/01/18 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
东南亚地区最大的购物网站Lazada新加坡站点:Lazada.sg
2016/07/17 全球购物
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
师范生自荐信
2013/10/27 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
勾股定理课后反思
2014/04/26 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
红高粱观后感
2015/06/10 职场文书
党员理论学习心得体会
2016/01/21 职场文书