vue自定义指令

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>自定义指令</title>
	<script src="js/vue.js"></script>
</head>
<body>
	<div id="itany">
		<!-- <h3 v-hello>{{msg}}</h3> -->
		<button @click="change">更新数据</button>

		<h3 v-world:wbs17022.hehe.haha="username">{{msg}}</h3>

		<!-- <p v-world>专业的前端培训</p> -->

		<!-- <h3 v-wbs>aaa</h3> -->

		<input type="text" v-model="msg" v-focus>
	</div>

	<script>
		/**
		 * 自定义全局指令
		 * 注:使用指令时必须在指名名称前加前缀v-,即v-指令名称
		 */
		Vue.directive('hello',{
			bind(){ //常用!!
				alert('指令第一次绑定到元素上时调用,只调用一次,可执行初始化操作');
			},
			inserted(){
				alert('被绑定元素插入到DOM中时调用');
			},
			update(){
				alert('被绑定元素所在模板更新时调用');
			},
			componentUpdated(){
				alert('被绑定元素所在模板完成一次更新周期时调用');
			},
			unbind(){
				alert('指令与元素解绑时调用,只调用一次');
			}
		});
		//钩子函数的参数
		Vue.directive('world',{
			bind(el,binding){
				// console.log(el); //指令所绑定的元素,DOM对象
				// el.style.color='red';

				console.log(binding); //name
			}
		});
		//传入一个简单的函数,bind和update时调用
		Vue.directive('wbs',function(){
			alert('wbs17022');
		});


		var vm=new Vue({
			el:'#itany',
			data:{
				msg:'welcome to itany',
				username:'alice'
			},
			methods:{
				change(){
					this.msg='欢迎'
				}
			},
			directives:{ //自定义局部指令
				focus:{
					//当被绑定元素插入到DOM中时获取焦点
					inserted(el){
						el.focus();
					}
				}
			}
		});
	</script>
	
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原克技术

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值