Vue3学习 day3

1.属性计算

1.什么是属性,计算属性?

在这里插入图片描述

  • data里面是属性;
  • computed里面是计算属性;根据属性计算出来的属性;当初次被读取时,会调用,返回值作为该属性的值 ; 当数据发生变化时,也会被调用; 有缓存
		<div id="app4">
			姓: <input type="text" v-model="firstName" />
			<br>
			名: <input type="text" v-model="lastName" />
			<br>
			全名:{{fullName}}  
			
		</div>

		var	vm4= new Vue({
				data: {
					firstName: 'a',
					lastName: 'b'
				},
				computed: {
					fullName: {
						//当初次被读取时,会调用,返回值作为该属性的值 ;  当数据发生变化时,也会被调用  有缓存
						get() { 
							console.log('get 被调用了')
							return this.firstName+"-"+this.lastName
						},
						set(value){
							console.log('set',value)
							const aa=value.split('-')
							this.firstName=aa[0]
							this.lastName=aa[1]	
						}
						
					},
					now:{
						get(){
							return Date.now()
						}
					}
				}
			}).$mount("#app4")
  • 简写
	var vm1 = new Vue({
				data: {
					firstName: 'a',
					lastName: 'b'
				},
				computed: {
					fullName: function() {
						console.log('get 被调用了')
						return this.firstName + "-" + this.lastName
					}
				}
			}).$mount("#app1")

2.列表渲染

1.基础使用
	<div id="app1">
			<ul>
			  <li v-for="(person,index) in personlist" :key="index">
				  {{person.name}}-{{person.age}}---索引值:{{index}}
			  </li>
			</ul>
			
			
			<ul>
			  <li v-for="(person,index) in 5" :key="index">
				  {{person}}-{{person}}---索引值:{{index}}
			  </li>
			</ul>
		</div>

		
		<script type="text/javascript">
			new Vue({
				data:{
				  personlist:[
					{id:'001',name:'zhangsan',age:12},
					{id:'002',name:'lisi',age:13},
					{id:'003',name:'wangwu',age:15}
				  ]	
				}
			}).$mount("#app1")
2.列表排序

3.收集表单数据

在这里插入图片描述


		<div id="app2">
			<form action="" method=""  @submit.prevent="demo" >
				<label for="account" >账户:</label> <input type="text" name="" id="account" value="" v-model.trim="userInfo.account" /><br>
				
				密码: <input type="password" name="" id="password" value="" v-model="userInfo.password" /><br>
				
				年龄: <input type="number" name="" id="age" value="" v-model.number="userInfo.age" /><br>
				
				性别:<br><input type="radio" name="sex" id="man" value="man" v-model="userInfo.sex"/><input type="radio" name="sex" id="woman" value="woman"  v-model="userInfo.sex"/><br>
				
				爱好:<br>
				学习<input type="checkbox" name="" id="study" value="study"  v-model="userInfo.hobby"/>
				游戏<input type="checkbox" name="" id="game" value="game" v-model="userInfo.hobby"/>
				音乐<input type="checkbox" name="" id="music" value="music" v-model="userInfo.hobby"/>
				
				<br>
				
				所属地:

				<select v-model="userInfo.city">
					<option value ="">请选择校区</option>
					<option value ="bj">北京</option>
					<option value ="sh">上海</option>
					<option value ="gz">广州</option>
					<option value ="sz">深圳</option>
				</select>
				
				<br>
				其他信息:
				<textarea  v-model.lazy="userInfo.other" rows="" cols=""></textarea>    //失去焦点 才搜集
				<br>
				
				<input v-model="userInfo.agree" type="checkbox" name="" id="" value="" />阅读并接收 <a href="https://www.baidu.com/">用户协议</a>
				
				<button  type="submit">提交</button>
				
			</form>
		</div>
		
	
		var app2=new Vue({
			data:{
				userInfo:{
					account: '',
					password:'',
					age:'',
					sex:'woman',
					hobby:[],
					city:'bj',
					other:'',
					agree:''
				}
			},
			methods:{
				demo(){
					console.log(JSON.stringify(this.userInfo))
				}
				
			}
		}).$mount("#app2")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值