首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

vue.js基础之 过滤器详解

过滤器 介绍 过滤器本质上就是函数,作用在于用户输入数据后进行处理并返回一个结果。使用管道符(|)连接。 分类 内置过滤器 实例: {{'abc' | uppercase}} //'abc' => 'ABC' 这里使用了内置过滤器 uppercase ,将字符串改为大写。 自定义过滤器 特点 支持链式调用 高内聚低耦合 方便数据处理,获取想要的数据格式 内置过滤器 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wNI8lqc8-1591182356367)(/Users/mxj/Library/Application Support/typora-user-images/image-20200603130112004.png)] 字母操作 capitalize 、 uppercase 、 lowercase 用于处理英文字符,且仅对英文字符串使用。 capitalize 用于将表达式中的首字母转为大写。 {{ 'def' | capitalize}} // 'Def' uppercase 用于将表达式中的所有字母转为大写。 lowercase 用于将表达式中的所有字母转为小写。 json 过滤器 用于将字符串的值转换为 json 字符串,带有一个数值参数表示转换之后字符串的缩紧距离,默认为2。 <pre>{{ didFamily | json 4 }}</pre> 上例表示以4个空格打印一个json字符串 限制 limitBy、filterBy、orderBy 用于处理并返回过滤后的数组。 limitBy 限制数组为开始的 N 个元素,N 由传入的第一个参数决定;第二个参数可选,指定数组的偏移量,默认为0,如果为5, 则表示从下标为5的地方开始计数。 //只显示开始的10个元素 <div v-for="item in items | limitBy 10" //显示第5到第10个元素 <div v-for="item in items | limitBy 10 5" filterBy 过滤条件为:'function || string ’ + in + ‘optionKeyName’ 如果搜索条件为多字符可以中间用空格隔开,返回包含过滤条件的数组。 <div v-for="user in users | filterBy 'Chrim' in 'name' 'nickname'" ></div> 也可以将搜索字段放到一个数组中,当修改搜索字段时只需修改数组即可,无需修改 View 层。 var names = ['name', 'nickname'] <div v-for="user in users | filterBy 'Chrim' in names" ></div> orderBy 返回排序后的数组。 过滤条件是:‘string || array || function’ + ‘order>0为升序 || order < 0 为降序’,order 默认为 1, 即升序。 注释:当传入参数为 string 或 array 的时候,其原理是用的 sort 函数,只不过 vue 提前在内部做了处理。 currency 过滤器 currency 过滤器的作用是将数字值转换为货币形式输出。第一个参数为 String 的货币符号,如果不输入,则默认为美元符号;第二个参数为 Number 的小数位,默认为2。 注意:如果第一个参数采取默认形式,而需要第二个参数修改小数位,那么第一个参数不可省略。 //默认情况 {{ amount | currency}} //12345 => $12,345.00 //使用人民币符号 {{ amount | currency '¥'}} //12345 => ¥12,345.00 //将小数位调整为 3 位 {{ amount | currency '$' 3}} //12345 => $12,345.000 debounse 过滤器 debounce 过滤器的作用是延迟处理器一定的时间执行。参数为函数且必须,一般与 v-on 等指令结合使用;可选参数延迟时间,单位毫秒,默认为 300 毫秒。 应用:通常在监听用户 input 事件时使用 debounce 过滤器,可以防止频繁调用方法。 <input @keyup='onKeyup | debounce 500' 自定义过滤器 大多数情况下内置的过滤器并不能满足我们的需求,所以需要用到 自定义过滤器。其方法如下: filter 语法 Vue 中有一个全局函数用于自定义过滤器:Vue.filter: 单个参数:实现将字符串反转 Vue.filter('reverse', function (value) { return value.splite('').reverse().join(''); }) <span v-text='message | reverse'></span> 多参数 多参数之间用空格分隔 Vue.filter('wrap', function (value, begin, end) { return begin + value + end; }) <span v-text="message | wrap 'before' 'agter'"></span> //'hello' => 'before hello after' 双向过滤器 上面的过滤器函数都是在 Model 数据输出到 View 层之前进行数据转化的,实际上 Vue.js 还支持把来自视图(input 元素) 的值在写回模型前进行转化,即双向过滤器。 Vue.filter(id, { //model -> viiew //read 函数可选 read: function(val) {}, //view -> model //write 函数将在数据被写入 Model 之前调用 //两个参数分别为表达式的新值和旧值 write: function(newVal, oldVal) {} }) 动态参数 如果过滤器参数和没有用引号包起来,则它会在 vm 作用域内动态计算。此外,过滤器函数的 this 始终指向调用它的 vm。 <input v-model='userInput'> <span>{{ msg | contact userInput}}</span> <!-- 此处过滤器接受的参数 userInput 根据用户输入动态计算 --> Vue.filter('concat', function (value, input) { return value + input }) 自定义过滤器注意事项 给过滤器一个唯一标识 如果用户自定义的过滤器与内置过滤器冲突,那么内置过滤器会被覆盖;如果后注册的过滤器与之前的过滤器冲突,则之前注册的过滤器会被覆盖。 过滤器函数需要有返回值 过滤器函数的作用是输入表达式的值,经过处理后输出。因此,定义的函数最好可以返回有意义的值。函数没有 return 语句不会报错,但这样的过滤器没有意义。 常见问题 解析 filterBy/orderBy 对表达式进行过滤后 $index 的索引 在使用 filterBy 或 orderBy 对表达式进行过滤时,如果同时需要将 $index 作为参数,此时的 $index 将会根据表达式数组或对象过滤后的值进行索引。 <ul id="example"> <li v-for="item in items | order 'age'">{{ item.message}} - {{ $index }}</li> </ul> var example = new Vue({ el: '#example', data: { items: [ { message: '顺风车', age: 2}, { message: '出租车', age: 10}, { message: '快车', age: 6} ] } }) //最终显示顺序为:顺风车-0、快车-0、出租车-2 即索引为返回的新数组的索引。 自定义 filter 的书写位置 自定义 filter 既可以写在全局的 Vue 下,也可以写在实例当中。但是需要注意的是,当写在全局 Vue 中时,要写在实例化 Vue 对象之前,否则不起作用。 全局 Vue Vue.filter('reverse', function(value){ return value.split('').reverse.join(''); }) 实例中 var demo = new Vue({ el: '#demo', data: {}, filters: { reverse: function (value){ return value.split('').reverse.join(''); } } })

优秀的个人博客,低调大师

低功耗设计基础:深入理解Internal Power

之前的文章我们引入了不少低功耗设计的基本概念,同时也介绍过芯片的总体功耗计算方法,其中就包括internal power的定义。今天想深入挖掘internal power以及它在应用过程中有哪些细节需要大家注意。 首先还是回顾一下关于数字芯片的功耗定义:主要由静态功耗(Static Power)和动态功耗(Dynamic Power)组成。二者的主要起因可以参考下图: 简而言之,静态功耗是芯片中的部分或全部电路在通电但不工作的状态下的功耗;动态功耗是芯片在正常工作时因信号翻转引起的功耗。而今天我们想要深挖的internal power,其实是动态功耗的一种。在数字电路中,动态功耗一般分为internal power和switching power,在此我们将重点介绍一下internal power。 很多人都知道internal power的定义是在cell内部由于充放电而产生的功耗,每个cell的功耗数值都可以在.lib文件中通过特定的查表方式获取。其实贡献internal power的因素应该分为两个因素:一是信号翻转时由于NMOS和PMOS同时导通而产生的短暂但巨大的贯穿电流;而是给内部和外部负载充放电所消耗的能量。对于第一种贯穿电流可以参考下图: 而对于第二种充放电引起的功耗,其实不同类型的cell的表现形式略有不同,internal power计算方式和在.lib中的表现形式也不尽相同。我们以三种主要的cell类型来说明: 第一种cell类型:单输入cell。这类cell以inverter为代表,仅有一个输入和输出,它的internal power计算方式最为简单直接, 就是input transiton和output load的二维查表,而且需要注意,这里的internal power是定义在输出端的: 第二种是多输入的组合逻辑门如nand,xor等。这类cell有一种共同点,那就是在特定条件下某一个或者几个pin的输入值对输出不造成影响,例如当nand的A1输入为0时,不管A2的输出是什么,最终输出都是1。此时尽管A2对输出没有贡献,但是它仍然会消耗一部分功耗,而这部分功耗会单独在.lib文件中有所体现: 第三种就是时序逻辑门如DFF。它的特殊之处主要有两点:一是输入的CLK pin即使在锁存的数值没有变化的时候仍然会消耗能量,具体原因大家可以参考DFF的内部结构;二是DFF一般都存在输出Q和取反值QN,每次Q的变化都会导致QN也发生变化,这部分QN的翻转也会消耗额外的能量,因此输出pin上的internal power会变成input, Q和QN负载的三维表格: 以上就是关于internal power的相关介绍,大家可以对照自己手中的项目去印证是否如此,如果有哪里不符合也请留言区告诉我一起讨论。 码字不易,如果你觉得这篇文章帮到了你,请帮忙转发让更多的人看到,谢谢! 重磅消息,粉丝福利! 近期小编开发了一台用于芯片设计的云服务器,和IC企业的设计环境相同,里面包含所有主流前后端EDA工具的最新/次新版本、几种开源45nm/32nm/14nm的工艺库和多个实验项目,非常适合初学者学习。每个人可以有一个独立账号可以随时随地用VNC远程访问服务器,里面的所有资源包括我开发的一些脚本和小工具都免费使用,只需分担一下云服务器的购置费用和服务器开发维护费用即可。小编会带着有需要的同学从头做一个小项目来帮助大家深入理解后端的工作和工具使用方法,而且不会是跑流程就能完成的,需要大家用原生命令一点点把设计做起来。目前首批开放的10个账号已用完,第二批又开放10个账户就等你来!有兴趣的同学可以扫描文章最后左侧的二维码加微信咨询,10个账号先到先得! 如果大家有任何数字后端感兴趣的技术话题想要了解和探讨,欢迎识别左侧二维码加入数字后端交流群。 同时为避免散布广告人士入群骚扰,请同时发送验证信息回答以下问题: IC设计主流EDA工具厂商除了Synopsys,Mentor还有谁? 也欢迎大家识别右侧二维码关注我的知乎: 知乎账号:阎浮提 知乎专栏:数字IC后端设计工程师修炼之路。 本文分享自微信公众号 - 数字后端设计芯讲堂(PhysicalDesign)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册