5.5 侦听器

侦听器
    1.侦听器的应用场景
        数据变化时执行异步或开销比较大的操作
        数据一旦发生变化就通知侦听器所绑定的方法
        
    2.侦听器的使用方法    
        watch: {
            firstName: function(val){
                this.fullName = val + ' ' + this.lastName;
            },
            lastName: function(val){
                this.fullName = this.firstName + ' ' + val;
            }
        },

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<div>
				<span>名:</span>
				<span>
					<input type="text" v-model="firstName"/>
				</span>
			</div>
			<div>
				<span>姓:</span>
				<span>
					<input type="text" v-model="lastName"/>
				</span>
			</div>
			<div>
				{{fullName}}
			</div>
		</div>
	</body>
	
	<script type="text/javascript" src="../js/vue.js"></script>
	<script type="text/javascript" >
	
	/*
	5.5 侦听器
	1.侦听器的应用场景
		数据变化时执行异步或开销比较大的操作
		数据一旦发生变化就通知侦听器所绑定的方法
		
	2.侦听器的使用方法	
		watch: {
			firstName: function(val){
				this.fullName = val + ' ' + this.lastName;
			},
			lastName: function(val){
				this.fullName = this.firstName + ' ' + val;
			}
		},
	 */
		var vm = new Vue({
			el:'#app',
			data:{
				 msg: "hello",
				 firstName: 'Jim',
				 lastName: 'Green',
				 fullName: 'Jim Green',
			},
			computed: {
				// fullName: function(){
				// 	return this.firstName + ' ' + this.lastName;
				// }
			},
			watch: {
				firstName: function(val){
					this.fullName = val + ' ' + this.lastName;
				},
				lastName: function(val){
					this.fullName = this.firstName + ' ' + val;
				}
			},
			methods: {
				handle: function (event) {
					
				}
			}
		});
	</script>
</html>

 

侦听器-验证输入的用户名是否合理
    1.采用侦听器监听用户名的变化
    2.调用后台接口进行验证
    3.根据验证结果调整提示信息

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<div>
				<span>用户名:</span>
				<span>
					<input type="text" v-model.lazy="uname" />
				</span>
				<span>
					{{tip}}
				</span>
			</div>
		</div>
	</body>
	
	<script type="text/javascript" src="../js/vue.js"></script>
	<script type="text/javascript" >
	
	/*
	侦听器
	1.采用侦听器监听用户名的变化
	2.调用后台接口进行验证
	3.根据验证结果调整提示信息
	
	 */
		var vm = new Vue({
			el:'#app',
			data:{
				 msg: "hello",
				 uname: '',
				 tip: '',
			},
			watch: {
				uname: function(val){
					//调用后台接口验证用户名的合法性
					this.checkName(val)
					//修改提示信息
					this.tip = '正在验证...'
				}
			},
			methods: {
				checkName: function (uname) {
					//调用接口,但是可以使用定时任务的方式模拟接口调用
					var that = this;
					setTimeout(function(){
						if(uname === 'admin'){
							that.tip = '用户名已经存在,请更换';
						}else{
							that.tip = '用户名可用';
						}
					}, 2000);
				}
			}
		});
	</script>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值