第十五课 Vue中的过滤器

Vue中的过滤器

Vue2.0以后废除了原始的过滤器,我们可以通过自定义过滤器去进行过滤

自定义过滤器通过属性filter去拓展

基础示例:

复制代码
    <div id="app">
        <h1>{{val | test}}</h1>
    </div>
    <script>
            new Vue({
                el: '#app',
                data: {
                    val: 10
                },
                filters: {
                    test(val){
                         return val > 100? '当前值大于100': '当前值不大于100'
                    }
                }
            })
    </script>  

自定义单向过滤器

1) 通过构造函数构建过滤器

大小写过滤

复制代码
    <div id="app">
        <input type="text" v-model="val">
        原始输入内容:<h1>{{val}}</h1>
        将大写英文转成小写:<h1>{{val | lowCase}}</h1>
        将小写英文转换成大写:<h1>{{val | upCase}}</h1>
    </div>
    <script>
            new Vue({
                el: '#app',
                data: {
                    val: 'Hello World !'
                },
                filters: {
                    lowCase(val){
                         return val.toLowerCase();
                    },
                    upCase(val){
                         return val.toUpperCase();
                    }
                }
            })
    </script> 

2)通过外部单独拓展过滤器

复制代码
<div id="app">
    <input type="text" v-model="val">
    原始输入内容:<h1>{{val}}</h1>
    将大写英文转成小写:<h1>{{val | lowCase}}</h1>
    将小写英文转换成大写:<h1>{{val | upCase}}</h1>
</div>
<script>
        Vue.filter('lowCase', function(val){
            return val.toLowerCase();
        });

        Vue.filter('upCase', function(val){
            return val.toUpperCase();
        })

        new Vue({
            el: '#app',
            data: {
                val: 'Hello World !'
            }
        })
</script>
  1. 关于参数值传递

fiter过滤器默认值第一位是当前的过滤参数,如果在过滤器传入参数,直接在参数集中传入其他参数即可

复制代码
<div id="app">
    原始输入内容:<h1>{{val | deal('Hello ', 'World !')}}</h1>
</div>
<script>
    new Vue({
        el: '#app',
        data: {
            val: 'Bob'
        },
        filters: {
            deal(val, before, after){
                console.log(val);
                console.log(before);
                console.log(after);
                return before + val + after;
            }
        }
    })
</script> 
相关推荐
小村儿3 分钟前
连载10-Sub-agents 深度解析:从源码理解 Claude Code 的分身术
前端·后端·ai编程
IT_陈寒37 分钟前
Vite动态导入把我坑惨了,原来要这样用才对
前端·人工智能·后端
DFT计算杂谈40 分钟前
KPROJ编译教程
java·前端·python·算法·conda
觅_43 分钟前
前端学习后端的时候 选择一个技术
前端·学习
独泪了无痕1 小时前
CryptoJS:数据安全的JavaScript加密利器
前端·vue.js·node.js
发现一只大呆瓜1 小时前
一文搞懂 Vite 处理CommonJS包、按需编译逻辑及 Rollup 插件兼容规则
前端
Edwardwu1 小时前
写了个y-mxgraph:给 draw.io 接上了 Yjs,顺便解决了部署在 iframe 里的一堆问题
前端·typescript
其实防守也摸鱼1 小时前
软件安全与漏洞--软件安全编码
java·前端·网络·安全·网络安全·web·工具
发现一只大呆瓜2 小时前
Vite 开发预构建机制详解,搞懂 esbuild 与 Rollup 分工差异
前端·面试·vite
熊猫_豆豆2 小时前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行