" filename | strip-ext " 这是什么写法?

2020-07-19 11:59:22 +08:00
 watanuki
看到别人写的一个 .vue 文件里有这样一行代码:
<div class="filename">{{ item.name | strip-ext }}</div>
效果是去除文件名中的文件扩展名后缀("新建文本文档.txt" -> "新建文本文档")

原来的项目没有用 eslint 和 prettier,在我启用了 eslint 和 prettier 后,上面的代码被编辑器自动格式化成下面这样:
<div class="filename">{{ item.name | (strip - ext) }}</div>
然后 eslint 报错说找不到 strip 和 ext 这两个变量

所以我就在想两个问题:
1. " filename | strip-ext " 这到底是个什么写法,是不是不太正规?
2. 去除文件名中的文件扩展名应该用什么方法比较正规?
1994 次点击
所在节点    Vue.js
9 条回复
calmzhu
2020-07-19 12:05:15 +08:00
这个是过滤器。一些情况下非常好用

https://cn.vuejs.org/v2/guide/filters.html
watanuki
2020-07-19 12:11:13 +08:00
@calmzhu #1 感谢回复。以前没有用过 vue 的过滤器,看起来确实很方便。
jeremaihloo
2020-07-19 14:40:10 +08:00
使用 vue3.0 的 cli 的 create 命令创建的项目,应该 eslint 都配置好不会报错的了吧
ChanKc
2020-07-19 20:58:05 +08:00
这个功能 vue3.0 不会再支持,我个人感觉看着也是不伦不类,不建议用
rizon
2020-07-20 10:10:52 +08:00
我一个 java 开发都只是过滤器 狗头.jpg
azcvcza
2020-07-20 10:18:18 +08:00
宁愿写 watch 来计算或者 computed
marcong95
2020-07-20 10:31:31 +08:00
过滤器不也是个 js 函数么,用 hyphen 定义显然是有点问题的,{{ item.name | stripExt }}应该就挺正常了

至于楼上说得 3.0 支不支持,这个到时候再说也行,毕竟现在还没 deprecated
watanuki
2020-07-20 12:12:14 +08:00
@marcong95 #7 确实,坑就坑在他的过滤器命名没有遵循驼峰命名,使 prettier 误会成两个变量相减。
zhuweiyou
2020-07-20 14:19:43 +08:00
@watanuki 噗。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/691300

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX