Vue------名称案例三种方式

需求展示

在这里插入图片描述firstname+lastname=fullname

实现方式一

利用@keyup事件和methods中的自定义getFullname方法

代码如下
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
	<div id="app">
		
		<input type="text" v-model="firstname" @keyup="getFullname">+
		<input type="text" v-model="lastname" @keyup="getFullname">=
		<input type="text" v-model="fullname">

	</div>
	<script>
		var vm = new Vue({
			el:'#app',
			data:{
				firstname:'',
				lastname:'',
				fullname:''
			},
			methods:{
				getFullname(){
					this.fullname=this.firstname+'-'+this.lastname
				}
			}
		});
	</script>
</body>
</html>

实现方式二

利用watch实现对数据的监听

代码如下
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
	<div id="app">
		
		<input type="text" v-model="firstname">+
		<input type="text" v-model="lastname">=
		<input type="text" v-model="fullname">

	</div>
	<script>
		var vm = new Vue({
			el:'#app',
			data:{
				firstname:'',
				lastname:'',
				fullname:''
			},
			methods:{

			},
			watch:{//使用这个属性,可以监视data中指定数据的变化,然后触发这个watch中对应的function处理函数
				'firstname':function(newVal,oldVal){
					// this.fullname=this.firstname+'-'+this.lastname
					this.fullname=newVal+'-'+this.lastname
				},
				'lastname':function(){
					this.fullname=this.firstname+'-'+this.lastname
				}
			}
		});
	</script>
</body>
</html>

实现方式三

利用computed计算属性

代码如下
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title></title>
	<script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
	<div id="app">
		
		<input type="text" v-model="firstname">+
		<input type="text" v-model="lastname">=
		<input type="text" v-model="fullname">

	</div>
	<script>
		var vm = new Vue({
			el:'#app',
			data:{
				firstname:'',
				lastname:''
			},
			methods:{},
			computed:{//在computed中,可以定义一些属性,这些属性,叫做【计算属性】,计算属性的本质,
				//就是一个方法,只不过我们在使用这些计算属性的时候,是把它们的名称,直接当作属性来
				//使用的;并不会把计算属性当作方法去调用;

				//注意1:计算属性,在引用的时候,一定不要加()去调用,直接把它当作普通属性去使用就好了;
				//注意2:只要计算属性,这个function内部所用到的任何data中的数据发生了变化,就会立即
				//重新计算这个计算属性的值;
				//注意3:计算属性的求值结果会被缓存起来,方便下次直接使用;如果计算属性方法中,所有来的
				//数据没有发生任何变化,则不会重新对计算属性求值;
				'fullname':function(){
					return this.firstname+'-'+this.lastname
				}
			}
		});
	</script>
</body>
</html>
watchcomputedmethods之间的对比
  1. computed属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。主要当作属性来使用;
  2. methods方法表示一个具体的操作,主要书写业务逻辑;
  3. watch一个对象,键是需要观察的表达式,值是对应的回调函数。主要用来监听某些特定数据的变化,从而进行某些具体的业务逻辑操作;可以看做是computedmethods的结合体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值