Vue.js学习笔记:过滤器、自定义按键修饰符、指令

允许你自定义过滤器,可被用作一些常见的文本格式化。过滤器可以用在两个地方:mustache 插值和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符指示;

私有过滤器

1、HTML元素:

<td>{{item.ctime |dataFormat('yyyy-mm-dd')}}</td>

2、私有 filters 定义方式:

filters:{dataFormat(input, pattern =""){var dt =newDate(input);var y = dt.getFullYear();var m =(dt.getMonth()+1).toString().padStart(2,'0');var d = dt.getDate().toString().padStart(2,'0');if(pattern.toLowerCase()==='yyyy-mm-dd'){return`${y}-${m}-${d}`;}else{var hh = dt.getHours().toString().padStart(2,'0');var mm = dt.getMinutes().toString().padStart(2,'0');var ss = dt.getSeconds().toString().padStart(2,'0');return`${y}-${m}-${d}${hh}:${mm}:${ss}`;}}}

使用ES6中的字符串新方法 (maxLength, fillString=’’) 或 (maxLength, fillString=’’)来填充字符串;

全局过滤器


Vue.filter('dataFormat',function(input, pattern =''){var dt =newDate(input);var y = dt.getFullYear();var m =(dt.getMonth()+1).toString().padStart(2,'0');var d = dt.getDate().toString().padStart(2,'0');if(pattern.toLowerCase()==='yyyy-mm-dd'){return`${y}-${m}-${d}`;}else{var hh = dt.getHours().toString().padStart(2,'0');var mm = dt.getMinutes().toString().padStart(2,'0');var ss = dt.getSeconds().toString().padStart(2,'0');return`${y}-${m}-${d}${hh}:${mm}:${ss}`;}});

注意:当有局部和全局两个名称相同的过滤器时候,会以就近原则进行调用,即:局部过滤器优先于全局过滤器被调用!

自定义键盘修饰符

1、通过.名称 = 按键值来自定义案件修饰符的别名:

Vue.config.keyCodes.f2 =113;

2、使用自定义的按键修饰符:

<input type="text" v-model="name" @keyup.f2="add">

自定义指令

https://cn.vuejs.org/v2/guide/custom-directive.html

1、自定义全局和局部的 自定义指令:


 Vue.directive('focus',{
   inserted:function(el){
     el.focus();}});
   directives:{
     color:{bind(el, binding){
         el.style.color = binding.value;}},'font-weight':function(el, binding2){
       el.style.fontWeight = binding2.value;}}

2、自定义指令的使用方式:

<input type="text" v-model="searchName" v-focus v-color="'red'" v-font-weight="900">
THE END