Vue操作DOM 和 自定义指令的钩子
来源:互联网 发布:微商网站源码 编辑:程序博客网 时间:2024/06/06 00:35
1、 this.$refs.* 拿到虚拟Dom,可以进行真实dom的一切操作
1)在标签中添加ref="*"
2)在方法中用this.$refs.*拿到这个元素,跟document.getElementById('*')一样。
2、自定义指令中,el就是当前环境下的Dom元素
el.style.color = "yellow";
console.log(el.tagName);//均可执行
console.log(el.tagName);//均可执行
代码:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>自定义指令</title> <script src="js/vue.js" type="text/javascript"></script> <style type="text/css"> .app{ width:300px; height: 300px; border: 1px solid #00ff00; } /*.app .child{ position: relative; top:320px; width:330px; height: 300px; border: 2px solid red; }*/ </style></head><body> <div class="app"><div v-color="colors[1].color1" name="tc">oooooo</div><my-card v-bind:obj="colors" name="zy"> <!-- <div class="child" v-demo:foo.a.b="color2">lalala</div> --></my-card></div> <script>/*钩子函数:bind、inserted、update、componentUpdated、unbind 钩子函数的参数: el、binding、vnode、oldVnode */Vue.directive('color', function (el, binding) { console.log("%%%%拿到当前域的真实dom%%%%"); console.log(el); el.style.color = "yellow"; console.log(el.tagName); console.log("%%%%查看自定义指令v-color本身的一些属性%%%%"); el.style.backgroundColor = binding.value; console.log(binding.name+","+binding.value+","+binding.expression+","+binding.arg);})Vue.component("my-card",{template:'<div ref="card" v-on:click="toclick" v-color="obj[0].color0">12345678</div>',props:['obj'],methods:{toclick: function(){console.log("%%%%拿到props数据%%%%%");console.log(this.obj[0].color0);console.log("%%%%拿到虚拟dom%%%%");console.log(this.$refs.card);console.log("%%%%拿到非prop传入的name的属性值%%%%%");console.log(this.$refs.card.getAttribute('name'));}} })// Vue.directive('demo',{ // bind: function(el,binding,vnode){ // el.innerHTML = // 'name: ' + binding.name + '<br/>' +// 'value: ' + binding.value + '<br/>' +// 'expression: ' + binding.expression + '<br/>' +// 'arg: ' + binding.arg + '<br/>' +// 'modifiers: ' + binding.modifiers + '<br/>' +// 'vnode keys: ' + Object.keys(vnode).join(', ');// console.log("原来的vnode");// console.log(vnode);// },// update: function(el,binding,vnode){// el.style.backgroundColor = binding.value;// console.log("更新的vnode"+vnode);// console.log("背景色:"+binding.value); // }// }) new Vue({el: ".app",data: {colors:[{color0:'#0000ff'},{color1:'#00ff00'}] }})</script></body></html>
阅读全文
0 0
- Vue操作DOM 和 自定义指令的钩子
- vue指令以及dom操作
- Vue2 自定义全局指令Vue.directive和指令的生命周期
- Vue自定义指令的使用
- vue js 的生命周期和钩子函数
- vue生命周期和钩子函数的理解
- vue全局自定义指令和局部自定义指令
- vue 过滤器和自定义指令、组件
- vue---vue中常用指令,以及如何自定义指令vue.directive进行节点操作?
- vue-钩子/ 虚拟DOM / 模板语法
- vue自定义指令(扩展的HTML)
- Vue的钩子函数
- Vue的路由钩子
- vue自定义指令-vue-reclick
- vue 自定义指令
- Vue自定义指令-拖拽
- Vue.js--自定义指令
- Vue自定义指令
- NSGA2算法中文版详细介绍
- java笔试题:数组查找,查找和为最大的子数组
- EasyWeChat、微信公众平台实现带参数二维码、微信事件处理以及微信详细用户信息获取
- 算法系列——和为S的两个数
- recyclvewi的adapter一个强大框架
- Vue操作DOM 和 自定义指令的钩子
- textarea 自适应内容高度
- 分布式架构--简易版支付系统
- 对糖尿病数据进行PCA降维
- 学习笔记24- C/C++ 字符串分割函数
- 编写 DockerFile
- MySQL数据库优化的八种方式
- Android NullPointerException FragmentHostCallback.getHandler()
- 项目——通过自动回复机器人学Mybatis(自己添加ajax代码优化)(三)