zoukankan      html  css  js  c++  java
  • Vue学习笔记十:过滤器

    公共过滤器的写法

    过滤器的写法还是很简单的 ,如下

    <p>{{ msg | filtermsg }}</p>
    
    Vue.filter("filtermsg",function(msg){
    	return msg.replace(/想象力/g,'许嵩')
    })
    

    filtermsg是过滤器名称,msg使用了filtermsg过滤器,然后filtermsg返回了替换的内容,你也可以写其他的操作

    简易过滤器+带参数过滤器+多过滤器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>蜀云泉</title>
        
        <script type="text/javascript" src="../lib/vue-2.6.10.js"></script>
        <link rel="stylesheet" href="../lib/bootstrap.css">
    
    </head>
    <body>
        
        <!-- 这个div就是MVVM中的V,View -->
        <div id="app">
    
            <!-- 最简易的过滤器 -->
            <p>{{ msg | filtermsg }}</p>
    
            <!-- 加参数的过滤器 -->
            <p>{{ msg | filtermsg2('许嵩','Vae') }}</p>
    
            <!-- 多个过滤器使用 -->
            <p>{{ msg | filtermsg | test}}</p>
    
        </div>
    
    
        <script>
    
            Vue.filter("filtermsg",function(msg){
                // replace方法的第一个参数是字符只能替换一个
                // return msg.replace('想象力','许嵩')
                // replace方法的第一个参数可以写正则表达式,这样可以替换所有的相似字符
                return msg.replace(/想象力/g,'许嵩')
            })
    
            Vue.filter("filtermsg2",function(msg,arg1,arg2){
                return msg.replace(/想象力/g,arg1+arg2)
            })
    
            Vue.filter("test",function(msg){
                return msg+"啦啦啦啦啦啦"
            })
    
            // 这个vm就是MVVM中的VM,ViewModel
            var vm=new Vue({
             el: '#app',
            //  这个data就是MVVM中的M,Model
             data: {
                 msg:'没有想象力,没有想象力是罪魁,没有想象力,灵感在墓地里沉睡'
             },
             methods: {
             }
    
            })
    
        </script>
    
    </body>
    </html>
    

    效果图

    私有过滤器

    上面的都是公有的过滤器,下面介绍私有的过滤器

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>蜀云泉</title>
        
        <script type="text/javascript" src="../lib/vue-2.6.10.js"></script>
        <link rel="stylesheet" href="../lib/bootstrap.css">
    
    </head>
    <body>
        
        <!-- 这个div就是MVVM中的V,View -->
        <div id="app">
    
            <p>{{ msg | test}}</p>
    
        </div>
    
    
        <script>
    
            Vue.filter("test",function(msg){
                return msg+"啦啦啦啦啦啦"
            })
    
            // 这个vm就是MVVM中的VM,ViewModel
            var vm=new Vue({
             el: '#app',
            //  这个data就是MVVM中的M,Model
             data: {
                 msg:'没有想象力,没有想象力是罪魁,没有想象力,灵感在墓地里沉睡'
             },
             methods: {
             },
             filters:{
                test:function(msg){
                return msg+"略略略略略"
                }
             }
    
            })
    
        </script>
    
    </body>
    </html>
    

    没错,所谓的私有过滤器就是在Vue下新加一个filters对象,写法都在上面了

    现在有一个公有的过滤器test和一个私有的过滤器test,两个名称一样,那使用哪个呢?看图

    很明显,如果公有过滤器和私有过滤器名称一样的话,先使用私有的过滤器

    防盗链接:本博客由蜀云泉发表

  • 相关阅读:
    弹出的iframe 表单无法获取焦点
    记录IE的两则BUG
    manifest 在移动端的应用实验
    [hover 状态图片变小] 淘宝的一个小用户体验
    使用 JSONP 的几点注意
    Apple在线商店iphone5, ipad mini到货提醒 邮件
    关于弹窗中的事件多次执行
    zen coding 插件使用实践
    hadoop系列整理Spark
    hadoop系列整理HBase
  • 原文地址:https://www.cnblogs.com/yunquan/p/10799175.html
Copyright © 2011-2022 走看看