Filter 支持
filter
实现依赖于原生支持,目前只支持 百度小程序
微信小程序
支付宝小程序
快应用
(okam-build@0.4.9
开始支持),然后各个小程序平台对于 filter
或者 自定义脚本支持稍有差异,使用时候也需要注意下。
filter
定义目前只支持本地 filter
定义,暂不支持 全局 filter
,filter 定义
同 。
在构建配置 framework
选项里加上 filter
支持:
- 脚本里
filters
属性里定义要用到的 filter - 模板里使用
Vue
filter 管道语法进行 filter 使用 - 注意:
filters
配置不支持mixin
<template>
<view class="filter-wrap">
<view>raw: {{str}}, filter: {{str | toUpperCase}}</view>
<filter-component :from="str|toUpperCase"></filter-component>
</view>
</template>
<script>
import FilterComponent from './FilterComponent';
export default {
config: {
title: 'Filter 支持'
},
components: {
},
data: {
str: 'abc3r23'
},
// 通过 filters 属性,声明过滤器,这部分定义最后会提取到自定义脚本文件,因此定义方式
// 注意参考官方语法
filters: {
return str2.toUpperCase();
}
},
methods: {
}
};
</script>
<style lang="stylus">
.filter-wrap
height: 100vh
padding: 10px
background: #fff
</style>
基于脚本
filters
属性声明要使用的filter
,注意该 filter 定义,经过构建后会被提取到单独的自定义脚本文件里,模板通过自定义脚本的方式引入。微信小程序 只支持 ES5 语法定义方式,包括导出 filter 方式用的是
commonjs
模块方式,因此需要在构建配置里单独将其转成 ES5 语法
百度小程序 Filter 支持
<template>
<view class="native-filter-wrap">
<filter src="../filter/util.filter.js" module="util"></filter>
<view>{{str}}: {{util.toUpperCase(str)}}</view>
<filter module="util2">
export default {
toLowerCase(str) {
}
}
</filter>
<view>{{str}}: {{util2.toLowerCase(str)}}</view>
</view>
</template>
export default {
config: {
title: '原生 Swan Filter 支持'
},
data: {
str: 'aCs'
}
};
</script>
支付宝自定义脚本支持
<template>
<view class="native-filter-wrap">
<import-sjs from="../filters/util.sjs" name="util"></import-sjs>
<view>{{str}}: {{util.toUpperCase(str)}}</view>
<view>{{str}}: {{util.toLowerCase(str)}}</view>
<view>fitler nested {{str}}: {{util.toUpperCase(util.toLowerCase(str))}}</view>
<view>{{util.info}}</view>
</view>
</template>
<script>
export default {
config: {
title: '原生 Ant Filter 支持'
},
data: {
str: 'aCs'
}
};
</script>