Vue学习笔记

vue过滤器filters

定义过滤器

var app = new Vue({
    el: '#app',
    data:{msg:'UP'},
    //定义过滤器
    filters:{
        // 过滤器的名称及方法
        myFilters:function(val){
            //转化为小写
            return val.toLowerCase();
        }
    }
})

过滤器的使用:

Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化转义等操作。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器要被添加到操作值得后面,使用 管道符 | 分割;vue会自动将操作值,以实参的形式传入过滤器的方法中;

自定义指令

v-on 、v-model、v-show 等指令,在操作 dom 时使用了 ref 属性,其实这些指令也是操作dom 的一种方式,但有时,这些指令并不能满足我们的需求,因此 vue 允许我们自定义指令来操作 dom

<div id="app">
    <p v-setcolor>自定义指令的使用</p>
</div>
<script>
    // 注册一个全局自定义指令 `v-focus`
    Vue.directive('setcolor', {
        // 当被绑定的元素插入到 DOM 中时……
        inserted: function (el) {
            // 聚焦元素
            el.style.color = 'red';
        }
    })
    var app = new Vue({
        el: '#app',
    })
</script>

实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="div">
            <!--绑定点击事件 -->
			<button @click="click">点击</button>
             <!-- 这里就是过滤器的使用 -->
			<p ref="pv">{{msg|myFilters|replace}}</p>
            <!--私有自定义指令-->
			<p v-blue = "color">局部自定义指令使用</p>
            <!--全局自定义指令-->
			<p v-setcolor>全局自定义指令使用</p>
		</div>
	</body>
</html>

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script>
    //全局自定义指令
	Vue.directive('setcolor',{
		inserted: function(el){
			//设置color的值为red
			el.style.color = "red";
		}
	})
	
	var app = new Vue({
		el:'#div',
		data:{
			msg:"WyQgkJs猪猪是猪谁?",
			color:'green',
		},
		methods:{
			click:function(){
                 //获取Dom元素的innerHTML的值
				var t = this.$refs.pv.innerHTML;
                 //控制台输出
				console.log(t);
			}
		},
		filters:{
			myFilters:function(val){
                 //大写字母转化小写字母
				return val.toLowerCase();
			},
			replace:function(val){
                //过滤敏感词
			   return val.replace(//g,'*');	
			}
		},
        //私有自定义指令
        directives:{
			blue:{
				inserted:function(el,val){
					//val.value的值为data中定义的color的值
					el.style.color = val.value;
				}
			}
		},
	})
</script>

效果展示:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值