自定义指令
属性:Vue.directive('指令名称',function(参数){
this.el-->原生dom元素
})
例:<div v-red></div> 注意:必须以v-开头
Vue.directive('red',function(){
this.el.style.backgroundColor="red",
})
自定义元素指令 //此指令用处不大
属性: Vue.elementDirective("自定义元素名称",{
bind:function(){
this.el.style.属性=" ?"
}
})
例: Vue.elementDirective('zns-red',{
bind:function(){
this.el.style.background='red';
}
});
zns-red{
width:100px;
background: yellow;
height:100px;
display: block;
}
自定义过滤器
Vue.filter(name,function(){
})
例:<div id="box">
{{a | toDou}}
</div>
Vue.filter('toDou',function(input){
return input<10?'0'+input:''+input;
});
自定义键盘信息
Vue.directive('on').keyCodes.ctrl=17;
Vue.directive('on').keyCodes.myenter=13;
自定义拖拽
<div id="box">
<div v-drag :style="{width:'100px', height:'100px', background:'blue', position:'absolute', right:0, top:0}"></div>
<div v-drag :style="{width:'100px', height:'100px', background:'red', position:'absolute', left:0, top:0}"></div>
</div>
Vue.directive('drag',function(){
var oDiv=this.el;
oDiv.onmousedown=function(ev){
var disX=ev.clientX-oDiv.offsetLeft;
var disY=ev.clientY-oDiv.offsetTop;
document.onmousemove=function(ev){
var l=ev.clientX-disX;
var t=ev.clientY-disY;
oDiv.style.left=l+'px';
oDiv.style.top=t+'px';
};
document.onmouseup=function(){
document.onmousemove=null;
document.onmouseup=null;
};
}
})
计算属性componend
例: componend:function(){
b:function(){
return 值 (如果不return 就娶不到值)
}//此b 是属性,不是函数
}
完整写法是: computed:{
b:{
get:function(){
return
},
set:function(){
return
}
}
} computed 里面可以防止一些逻辑代码,但一定记得return
Vue 实例简单方法
var vm=new Vue({
el:"#box"
data:{}
})
vm.$el 元素
vm.$data 就是data
vm.$mount('#box') 手动挂载 (可以去掉el:'#box',和其一样)
循环 v-for=”value in data”
会有重复数据?如添加一个数据,但是不能多次添加
解决方法: track-by="$index/Uid"(索引/或ID)
例: <li v-for="value in data track-by="$index>
</li>