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监听div内容的变化具体实现思路
Nov 04 Javascript
js 数组操作之pop,push,unshift,splice,shift
Jan 29 Javascript
Express作者TJ告别Node.js奔向Go
Jul 14 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
Bootstrap零基础入门教程(二)
Jul 18 Javascript
详解堆的javascript实现方法
Nov 29 Javascript
jquery实现下载图片功能
Jul 18 jQuery
JavaScript实现移动端带transition动画的轮播效果
Mar 24 Javascript
jquery实现简单自动轮播图效果
Jul 29 jQuery
15个值得收藏的JavaScript函数
Sep 15 Javascript
vue实现可以快进后退的跑马灯组件
Apr 08 Vue.js
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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
jQuery实现本地存储
2020/12/22 jQuery
python正则分组的应用
2013/11/10 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
Python数据库小程序源代码
2019/09/15 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
Django继承自带user表并重写的例子
2019/11/18 Python
Python模块的制作方法实例分析
2019/12/21 Python
详解python中各种文件打开模式
2020/01/19 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
Python实现一个优先级队列的方法
2020/07/31 Python
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
财务主管的岗位职责
2013/12/30 职场文书
优秀的茶餐厅创业计划书
2014/01/03 职场文书
人力资源管理专业自荐书范文
2014/02/10 职场文书
美食节策划方案
2014/05/26 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL