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修复在iframe下的页面锚点失效问题
Aug 22 Javascript
js实现网页随机切换背景图片的方法
Nov 01 Javascript
javascript实现网页背景烟花效果的方法
Aug 06 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
May 25 Javascript
简单实现AngularJS轮播图效果
Apr 10 Javascript
xmlplus组件设计系列之按钮(2)
Apr 26 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
thinkjs 文件上传功能实例代码
Nov 08 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
vue-cli3.0配置及使用注意事项详解
Sep 05 Javascript
详解vue-cli 脚手架 安装
Apr 16 Javascript
jQuery实现穿梭框效果
Jan 19 jQuery
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中数组的分组排序实例
2014/06/01 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
php use和include区别总结
2019/10/13 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
js多功能分页组件layPage使用方法详解
2016/05/19 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
Python类定义和类继承详解
2015/05/08 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
Python类的继承用法示例
2019/01/31 Python
Django视图扩展类知识点详解
2019/10/25 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
幼儿园教师培训制度
2014/01/16 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
中药专业自荐信范文
2014/03/18 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
质量保证书怎么写
2015/02/27 职场文书
老公婚前保证书
2015/02/28 职场文书
2015年营业员工作总结
2015/04/23 职场文书
学历证明样本
2015/06/16 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书