Vue.js过滤器filters

╰+哭是因爲堅強的太久メ 2024-03-23 16:07 108阅读 0赞

666b410860d144eb91c2a90ee68baa74.gif

目录

一、局部过滤器

二、全局过滤器

三、过滤器串联

四、过滤器接收多个参数


Vue.js允许自定义过滤器,过滤器的作用可被用于一些常见的文本格式化(也就是修饰文本,但是文本内容不会改变)

过滤器可以用在两个地方:双花括号插值或v-bind表达式

一、局部过滤器

局部过滤器使用示例:

  1. <div id="root">
  2. <p>电脑价格:{
  3. {price | addPriceIcon}}</p>
  4. </div>
  5. <script>
  6. Vue.config.productionTip = false;
  7. const vm = new Vue({
  8. el: '#root',
  9. data: {
  10. price:200
  11. },
  12. filters: {
  13. //处理函数
  14. addPriceIcon(value){
  15. console.log(value);
  16. return '¥' + value;
  17. }
  18. }
  19. })
  20. </script>

执行结果:

e6fcb12f168a4cdab1b6047df5229331.png

这段代码的需求是在价格前面加上人民币符号(¥)。模板中文版(price)后边需要添加管道符号(|)作为分隔,管道符(|)后边是文本的处理函数(addPriceIcon),处理函数的第一个参数是管道符前边的文本内容(price)。

二、全局过滤器

全局过滤器使用示例:

  1. <div id="root">
  2. <p>电脑价格:{
  3. {price | addPriceIcon}}</p>
  4. </div>
  5. <script>
  6. Vue.config.productionTip = false;
  7. Vue.filter("addPriceIcon",(value)=>{
  8. return '¥' + value;
  9. })
  10. const vm = new Vue({
  11. el: '#root',
  12. data: {
  13. price:200
  14. }
  15. })
  16. </script>

执行结果:

3f539e3408bf4597ab0276b6e4a4a43c.png

注意:当全局过滤器和局部过滤器重名时,会采用局部过滤器

三、过滤器串联

过滤器还可以串联,例如:

{ {price | filterA | filterB}}

filterA被定义为接收单个参数的过滤器参数,表达式price的值将被作为参数传入参数。然后继续调用同样被定义接收单个参数的过滤器函数filterB,将filterA的结果传递到filterB中。

过滤器串联示例:

  1. <div id="root">
  2. <p>电脑价格:{
  3. {price | addPriceIcon | addChinesePriceIcon}}</p>
  4. </div>
  5. <script>
  6. Vue.config.productionTip = false;
  7. Vue.filter("addPriceIcon",(value)=>{
  8. return '¥' + value;
  9. })
  10. Vue.filter("addChinesePriceIcon",(value)=>{
  11. return '人民币' + value;
  12. })
  13. const vm = new Vue({
  14. el: '#root',
  15. data: {
  16. price:200
  17. }
  18. })
  19. </script>

执行结果:

5e5b7ff08545406cb1a530cf280b8fb1.png

四、过滤器接收多个参数

过滤器是JavaScript函数,因此可以接收两个参数:

{ { price | filterA(arg) }}

filterA被定义为接收两个参数的过滤器参数。其中price的值作为第一个参数,表达式arg的值可作为第二个参数,也可接收多个参数

过滤器接收两个参数示例:

  1. <div id="root">
  2. <p>电脑价格:{
  3. {price | addPriceIcon(unit)}}</p>
  4. </div>
  5. <script>
  6. Vue.config.productionTip = false;
  7. const vm = new Vue({
  8. el: '#root',
  9. data: {
  10. price:200,
  11. unit:"(元)"
  12. },
  13. filters: {
  14. // 处理函数
  15. addPriceIcon(value1,value2){
  16. return '¥' + value1 + value2;
  17. }
  18. }
  19. })
  20. </script>

执行结果:

8be3656a54644b3f9772f5f7e940b0e4.png

过滤器接收多个参数示例:

  1. <div id="root">
  2. {
  3. {al | filterAa(a2,a3,...an...)}}
  4. </div>
  5. <script>
  6. filters: {
  7. // 处理函数
  8. addPriceIcon(a1,a2,a3,...an...){
  9. //a1是传入的第1个参数
  10. //a2是传入的第2个参数
  11. //a3是传入的第3个参数
  12. //......
  13. //an是传入的第n个参数
  14. }
  15. </script>

发表评论

表情:
评论列表 (有 0 条评论,108人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Filter过滤器

    Filter的基本功能是对servlet容器调用servlet的过程进行拦截,从而在servlet进行响应处理的前后实现一些特殊的功能。 在servletAPI中定义了三个接

    相关 Filter过滤器

    过滤器: 过滤   过滤请求 可以写多个 从用户访问  ->第一个过滤器  -> 第二个过滤 -> servlet   生命周期:随着项目的启动而创建 当访问了地址后而

    相关 Filter过滤器

    一、Filter过滤器 1、介绍       Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态资源文件等进行

    相关 Filter 过滤器

    > 过滤器,其实就是对客户端发出来的请求进行过滤。浏览器发出,然后服务器派Servlet处理。在中间就可以过滤,其实过滤器起到的是拦截的作用,也就是拦截器。 作用