[简化 Vue.js 应用开发] 分享一个常用 Vue.js 自定义过滤器合集,适合开发 Dashboard 后台管理类应用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Kamato
V2EX    前端开发

[简化 Vue.js 应用开发] 分享一个常用 Vue.js 自定义过滤器合集,适合开发 Dashboard 后台管理类应用

  •  
  •   Kamato
    panteng 2016-04-19 12:57:04 +08:00 8403 次点击

    Vue-Filters-Kit

    整合常用的 Vue.js custom filters ,帮助你快速格式化时间、小数等数据,适合开发 Dashboard 后台管理类应用。

    screenshot.jpg

    GitHub: https://github.com/panteng/vue-filters-kit

    示例: http://panteng.me/demos/vue-filters-kit

    写在后面

    这个项目的诞生的原因是,最近这一年我用 Vue.js 写了很多后台管理类的网站,这种网站会涉及很多数据格式化相关的工作。通常我会使用 Vue 过滤器实现数据格式化。因此我打算将一些常用的自定义过滤器整合起来,做成一个库,以后在写新项目时直接拿来用就好,不需要再从头编写。

    目前整合了我自己在 Vue.js 应用中常用的过滤器,包括 booleanFormatter (格式化布尔值), byteFormatter (将 Byte 值转换为 kb 、 mb 、 gb 或 tb ), percentageFormatter (将小数转化为百分数)和 timestampFormatter (将时间戳转换为时间)。我将陆续增加更多的自定义过滤器。

    欢迎提 bug 和建议。如果你有其他常用的过滤器想补充,也欢迎 pull request 。总之是希望把一些常用的过滤器整合在一起,随取随用,以减少 Vue.js 应用的开发成本。

    8 条回复    2016-04-21 11:56:17 +08:00
    loading
        1
    loading  
       2016-04-19 13:08:19 +08:00
    正在上手 vue.js ,十分感谢。
    Kamato
        2
    Kamato  
    OP
       2016-04-19 13:16:11 +08:00
    @loading 感谢支持~
    shellcodecow
        3
    shellcodecow  
       2016-04-19 13:42:13 +08:00
    github 上面看到的,已 star
    Kamato
        4
    Kamato  
    OP
       2016-04-19 13:47:44 +08:00
    @shellcodecow 谢谢~
    airyland
        5
    airyland  
       2016-04-19 13:54:33 +08:00
    时间戳转换直接依赖了 moment ,这个依赖有点大。
    看 LZ 骨骼精奇,看有没有兴趣来帮忙完善一个 vue UI 的项目: https://github.com/airyland/vux
    Kamato
        6
    Kamato  
    OP
       2016-04-19 14:03:10 +08:00
    @airyland 哈,这些 filters 主要是用来开发 Dashboard 类应用的。对于这种应用来说,引用个 moment.js 不算过分,而且很多其他地方都会用到 moment.js ,比如 echarts 图表的时间格式化,所以可以接受。你的项目看起来很赞,容我了解一下,时间充足的话我会尽我所能帮忙的~
    NemoAlex
        7
    NemoAlex  
       2016-04-21 10:59:29 +08:00
    感觉
    {{ isActive | booleanFormatter 'Yes' 'No' }}
    这样的写法,并没有比
    {{ isActive ? 'Yes' : 'No' }}
    更简练啊,不明白有什么意义
    Kamato
        8
    Kamato  
    OP
       2016-04-21 11:56:17 +08:00
    @NemoAlex 恩~ 确实更简练。但是我更倾向于把数据格式化的操作用 filter 的形式封装起来,出于 2 点考虑:

    1. 保持代码风格一致。凡是涉及数据格式化的操作,都用 filters 来完成。就像 percentageFormatter 也可以用{{ (decimal*100).toFixed(2) }} 代替一样。但我个人不喜欢。

    2. 便于统一维护和增加自定义操作。{{ isActive | booleanFormatter 'Yes' 'No' }} 和 {{ isActive ? 'Yes' : 'No' }} 其实并不完全相同。 booleanFormatter 要求 isActive 必须是一个显式的 true 或 false 值,如果 isActive 的值是 null 或 underfined 或空字符串,则返回的结果不是'No',而是一个横线'-'。其他三个过滤器我也做了类似的操作。因为我不想把空值或未定义的值当作 false 和 0 来处理,在很多情况下这代表后台传过来的数据有问题。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2467 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:38 PVG 23:38 LAX 08:38 JFK 11:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86