• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ellaha
博客园    首页    新随笔    联系   管理    订阅  订阅
Vue过滤器的使用

Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:

一,不带参数的过滤器及其使用

1,不带参数的过滤器的定义语法

注意:全局过滤器没有加s

Vue.filter('过滤器名称', function(msg){})  //其中msg是过滤器管道符前面传递过来的数据

2,不带参数的过滤器调用时的格式 {{ msg | 过滤器名称}},注意:过滤器不会改变原始数据

3,定义一个无参数的全局过滤器

Vue.filter('msgFormat', function(msg){
        return msg.replace(/你好/g, '替代内容')
    })

4,使用一

<div id="app">
    <p>{{msg | msgFormat}}</p>
</div>

<script>
    //定义一个Vue全局的过滤器
    Vue.filter('msgFormat', function(msg){
        return msg.replace(/你好/g, '替代内容')
    })
    var vm = new Vue({
        el: '#app',
        data: {
            msg: '你好1你好2你好3你好4'
        },
        methods: {

        }
    })
</script>

二,不带参数的过滤器及其使用

1,定义一个带参数的全局过滤器

Vue.filter('msgFormat', function(msg, arg){
        return msg.replace(/你好/g, arg)
    })

2,使用

<div id="app">
    <p>{{msg | msgFormat('疯狂')}}</p>
</div>

<script>
    //定义一个Vue全局的过滤器
    Vue.filter('msgFormat', function(msg, arg){
        return msg.replace(/你好/g, arg)
    })
    var vm = new Vue({
        el: '#app',
        data: {
            msg: '你好1你好2你好3你好4'
        },
        methods: {

        }
    })
</script>

三,过滤器可以串联

<div id="app">
    <p>{{msg | msgFormat('疯狂') | test}}</p>
</div>

<script>
    //定义一个Vue全局的过滤器
    Vue.filter('msgFormat', function(msg, arg){
        return msg.replace(/你好/g, arg)
    })
    Vue.filter('test', function(msg){
        return msg + '====='
    })
    var vm = new Vue({
        el: '#app',
        data: {
            msg: '你好1你好2你好3你好4'
        },
        methods: {

        }
    })
</script>

 四,定义一个私有过滤器

私有过滤加s

var vm = new Vue({
        el: '#app',
        data: {
            msg: '你好1你好2你好3你好4'
        },
        methods: {},
        // 过滤器有两个条件:过滤器名称 处理函数
        filters: {
           msgFormat2: function(msg){
               return this.msg + '私有过滤器'
           }
        }
    })

 

posted on 2021-04-07 18:01  ellaha  阅读(129)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3