Vue学习日记(三) v-if v-show v-for 定义组件

知识点一 v-if 和v-show的区别

v-if是判断为真时就会渲染这个标签,而v-show其实是设置他的display属性,它一直都是占用dom文档流的。

<div id="root">
		<div v-if="show">hello world</div>
		<botton @click="handleClick">toggle</botton>
		<ul>
			<li v-for="(item,index) of list" :key="index">{{item}}</li>
		</ul>
	</div>
new Vue({
			el:"#root",
			data: {
			   show:true,
			   list:[1,2,3]
			},
			methods:{
				handleClick:function(){
					this.show=!this.show
				}
			}
		})

知识点二 定义组件

使用Vue.component来定义组件。

使用$emit使子组件来触发父级事件。

<div id="root">
		<input v-model="inputValue"/>
		<button @click="handleSubmit">提交</button>
		<ul>
		     <todo-item v-for="(item,index) of list" :key="index" :content="item" :index="index" @delete="handleDelete"></todo-item>
		</ul>
	</div>


		//全局组件
		Vue.component('todo-item',{
			props:['content'],
			template:'<li @click="handleClick">{{content}}</li>',
			methods:{
				handleClick:function(){
					//子组件的删除,监听delete事件
					this.$emit('delet',this.index)
				}
			}
		})

		new Vue({
			el:"#root",
			
			data:{
				inputValue:'',
				list:[]
			},
			methods:{
				handleSubmit:function(){
					this.list.push(this.inputValue);
					this.inputValue=" "
				},
				handleDelete:function(){
					this.list.splice(index,1)
				}
			}
		})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值