过滤器只能使用在 插值表达式 或 v-bind 中,不能使用在其他地方,比如 v-text
1.自定义一个全局过滤器的格式
Vue.filter( ‘ 过滤器将来被调用时候的名称 ’,过滤器的处理函数)
2.过滤器的调用方法
// 在调研过滤器的时候,需要使用 | 来调用, | 叫做管道符
<h2>学校名称:{{name | mySlice}}</h2>
在过滤器的处理函数中,第一个形参作用已经被固定死,永远是 管道符前面的值
Vue.filter('mySlice',function(value){
return value.slice(0,4) // 过滤器必须要有一个返回值
})
基本使用:
<!-- 在页面上通过 vue 插值表达式在页面中 渲染 一句话 -->
<div id="app">
<h3>{{msg}}</h3>
</div>
<script src="js/vue.js"></script>
<script>
let vm = new Vue({
el:'#app',
data:{
msg:'我是个好人'
}
})
</script>
要求:把 好人 换成 坏人,但不能更改Vue中msg的源数据
现在 script 标签中自定义一个全局过滤器,过滤器名称自己可改
Vue.filter('setStr',function(data){
})
在过滤器中定义一个方法
Vue.filter('setStr',function(data){
// 过滤器中必须有一个返回值
return data.replace(/好人/g,'坏人')
// 使用 replace 替换字符串内某些元素为其他元素, g 代表全局匹配
})
<!-- 然后再 插值表达式 中调用过滤器 -->
<div id="app">
<h3>{{msg | setStr}}</h3>
</div>