3 自定义(重要)

循环

v-for="value in data"
会有重复数据?
track-by='索引'   提高循环性能
track-by='$index/uid'

过滤器

vue提供过滤器:
        capitalize  uppercase   currency....
//debounce配合事件,延迟执行
        <input type="text" @keyup="show | debounce 2000">//延迟两秒执行debounce   
数据配合使用过滤器:
//limitBy 参数(取几个)
    <li v-for="value in arr | limitBy 2"> {{value}} </li>   //limitBy   限制2个
//limitBy(取几个  从哪开始)
        <li v-for="val in arr | limitBy 2 arr.length-2"> {{val}}</li>
//filterBy  过滤数据     
        <li v-for="val in arr | filterBy 'w'">{{val}}</li>//显示所有带w的
//orderBy   排序
        //todo  未确定
    orderBy 谁 1/-1
            1  -> 正序
            2  -> 倒序

自定义过滤器: filter

自定义过滤器: filter           model ->过滤 -> view
Vue.filter('toDou',function(input){//参数是a的值
    return input<10?'0'+input:''+input;
});
{{a | toDou}}//data:{a:9}
//传参
Vue.filter('toDou',function(input,one,two){//参数是a的值   one,two是接受的参数
    return input<10?'0'+input:''+input;
});
{{a | toDou 1 2}}//data:{a:9}

自定义指令 directive * 注意: 必须以 v-开头

Vue.directive(指令名称,function(参数){
    this.el -> 原生DOM元素
});
Vue.directive('red',function(){
     this.el.style.background='red';
});
<span v-red>asdfasd </span>
自定义元素指令:(用处不大)
Vue.elementDirective('zns-red',{
      bind:function(){
        this.el.style.background='red';
      }
});
<zns-red></zns-red>

自定义键盘事件

普通的事件@keydown.up   @keydown.enter   @keydown.a/b/c.... 
Vue.directive('on').keyCodes.ctrl=17;//添加自定义事件
<input type="text" @keydown.ctrl="show">

监听数据变化

vm.$watch(name,fnCb);  //浅度
vm.$watch(name,fnCb,{deep:true});  //深度监视 
vm.$el/$mount/$options/....
vm.$watch('a',function(){ //data:{a:111, b:2}
         alert('发生变化了');
         this.b=this.a+100;
});
document.onclick=function(){  vm.a=1;};

双向过滤

Vue.filter('filterHtml',{
   read:function(input){ //model-view
         alert(1);
         return input.replace(/<[^<]+>/g,'');
   },
   write:function(val){ //view -> model
         console.log(val);
        return val;
    }
});
<input type="text" v-model="msg | filterHtml">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • AngularJS是什么?AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是...
    200813阅读 5,578评论 0 3
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,474评论 0 29
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 13,802评论 4 129
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 6,693评论 0 6
  • 今年的清明意外的没有下雨,明媚的阳光让踏青的人们心情舒畅,然而于我而言却是个特殊的日子——外婆在这个清明离世了。 ...
    古米莱阅读 3,255评论 2 2

友情链接更多精彩内容