过滤器 概念:Vue.js允许自定义过滤器,可被用作一些常见的文本格式化。 过滤器可以用在两个地方:mustache即{{ }}插值和v-bind 表达式。过滤器应该被添加在JavaScript表达式的尾部,由管道符:|指示;
过滤器的定义语法:Vue.filter('过滤器的名称', function(msg){}),该函数function第一个参数是过滤器管道符前面传递过来的数据
// 全局过滤器名称 // 过滤器中的 function ,第一个参数,已经被规定死了,永远都是 过滤器 管道符前面 传递过来的数据 Vue.filter('过滤器的名称', function (data) { return data + '123' })以下例子所需要的实例:
// 创建 Vue 实例,得到 ViewModel var vm = new Vue({ el: '#app', data: { msg: '你好,你很好啊' }, methods: {} });vuejs中的过滤器在使用时,可以带小括号也可以不带小括号,带括号就是传递参数,否则就是不传递参数
自定义私有过滤器时,如果是私有过滤器,若和全局重名那么优先私有过滤器
// 如何自定义一个私有的过滤器(局部) var vm = new Vue({ el: '#app', data: { dt: new Date() }, methods: {}, filters: { // 定义私有过滤器 过滤器有两个 条件 【过滤器名称 和 处理函数】 // 过滤器调用的时候,采用的是就近原则,如果私有过滤器和全局过滤器名称一致了,这时候 优先调用私有过滤器 dateFormat: function (dateStr, pattern = '') { // 根据给定的时间字符串,得到特定的时间 return dataStr + pattern; } } },moment.js(js date)日期格式化处理插件强大,moment.js中文api,当前日期格式化、当前日期向前或者向后推的日期格式化、指定日期格式化调用演示,例如:
//当前日期格式化 moment().format('MMMM Do YYYY, h:mm:ss a'); -> 四月 6日 2015, 3:55:57 下午 moment().format('dddd'); -> 星期一 moment().format("MMM Do YY"); -> 4月 6日 15 moment().format('YYYY [escaped] YYYY'); -> 2015 escaped 2015 moment().format(); -> 2015-04-06T15:55:57+08:00 //--------------------------------------------------- moment().format('YYYY-MM-DD'); -> 2015-04-06 moment().format('YYYY-MM-DD h:mm:ss a'); -> 2015-04-06 03:55:57 下午 //指定日期格式化 moment("20111031", "YYYYMMDD").fromNow(); -> 3年前 moment("20120620", "YYYYMMDD").fromNow(); -> 3年前 moment().startOf('day').fromNow(); -> 16小时前 moment().endOf('day').fromNow(); -> 8小时内 moment().startOf('hour').fromNow(); -> 1小时前 // 当前日期向前或者向后推的日期格式化 moment().subtract(10, 'days').calendar(); -> 2015年3月27日 moment().subtract(6, 'days').calendar(); -> 上周二下午3点55 moment().subtract(3, 'days').calendar(); -> 上周五下午3点55 moment().subtract(1, 'days').calendar(); -> 昨天下午3点55 moment().calendar(); -> 今天下午3点55 moment().add(1, 'days').calendar(); -> 明天下午3点55 moment().add(3, 'days').calendar(); -> 本周四下午3点55 moment().add(10, 'days').calendar(); -> 2015年4月16日 //也可以使用下面方式日期格式化 moment().format('L'); -> 2015-04-06 moment().format('l'); -> 2015-04-06 moment().format('LL'); -> 2015年4月6日 moment().format('ll'); -> 2015年4月6日 moment().format('LLL'); -> 2015年4月6日下午3点55 moment().format('lll'); -> 2015年4月6日下午3点55 moment().format('LLLL'); -> 2015年4月6日星期一下午3点55 moment().format('llll'); -> 2015年4月6日星期一下午3点55此处使用的是 es6的模板字符串方法:es6新增方法
常用的按键码如下:
.enter .tab .delete (捕获“删除”和“退格”键) .esc .space .up .down .left .right .ctrl .alt .shift .meta使用时如下:
// 按空格键触发Dosomething事件 <input type="text" @keyup.space="Dosomething">通过Vue.config.keyCodes.名称 = 按键值来自定义案件修饰符的别名: Vue.config.keyCodes.f2 = 113;,此处的f2的键盘码值是113
<label> Name: <input type="text" class="form-control" v-model="name" @keyup.f2="add"> </label> // 自定义全局按键修饰符 Vue.config.keyCodes.f2 = 113什么是生命周期:从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期 生命周期钩子:就是生命周期事件的别名而已; 生命周期钩子 = 生命周期函数 = 生命周期事件 主要的生命周期函数分类:
创建期间的生命周期函数: beforeCreate:实例刚在内存中被创建出来,此时,还没有初始化好 data 和 methods 属性 created:实例已经在内存中创建OK,此时data 和 methods已经创建OK,此时还没有开始编译模板 beforeMount:此时已经完成了模板的编译,但是还没有挂载到页面中 mounted:此时,已经将编译好的模板,挂载到了页面指定的容器中显示运行期间的生命周期函数: beforeUpdate:状态更新之前执行此函数, 此时 data 中的状态值是最新的,但是界面上显示的数据还是旧的,因为此时还没有开始重新渲染DOM节点 updated:实例更新完毕之后调用此函数,此时 data 中的状态值和界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了销毁期间的生命周期函数: beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。 destroyed:Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁如果觉得图片太小看不清,可以在浏览器中单击后放大