初识vue.js,我的学习之路(三)

  vue之自定义指令

    像v-if、v-show、等这些都是系统指令,比如说我想写一个v-color的指令,但是系统是没有这个指令的,如果我们直接这样写肯定会报错,所以我们下面就需要自定义指令。

 1 <div id="app">
 2 
 3     <h1 v-color="pink">11111111111111</h1>
 4 
 5 </div>
 6 
 7 <script src="vue.js"></script>
 8 <script>
 9 
10     Vue.directive("color",function(el,binding){
11         /*console.log(el);
12         console.log(binding); */
13 
14         el.style[binding.name] = binding.expression;
15 
16     });
17     new Vue({
18         el:"#app",
19         data:{
20             pink:""
21         }
22 
23     })
24 </script>
25 </body>
上面这种Vue.directive是全局的写法,里面有两个参数第一个是指令名称,第二个是一个方法,方法里面也有两个参数第一个参数el就是Dom节点,第二个是这个对象里面有个name属性,name对应color就是这个color。
这是一个全局的写法。
下面这种是局部的写法(注意的是directive要加s):
 1 <div id="app">
 2 
 3     <h1 v-color>11111111111111</h1>
 4     <h2 v-date>456</h2>
 5 
 6 </div>
 7 
 8 <script src="vue.js"></script>
 9 <script>
10     new Vue({
11         el:"#app",
12         directives:{
13             "color":function(el,binding){
14                 el.style.color = "red"
15             },
16             "date":function(el,binding){
17 
18                 el.innerHTML = "123"
19             }
20         }
21     })

 





 

posted @ 2017-12-23 09:31  Angel爽  阅读(526)  评论(1编辑  收藏  举报