vue动态添加数据,并实现点击删除

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script type="text/javascript" src="js/vue.js"></script>
</head>
<body>
	<!-- 
		注意; 每一个vue实例都是一个组件 每一个组件也都是一个vue实例


		父子组件之间带的通信:
			父组件传递数据给子组件: 通过属性绑定,并且子组件需要使用props接收
			子组件给父组件传递数据: 必须基于发布订阅模式,子组件需要先向外发布,父组件负责监听
	 -->
	<div id="app">
		<div>
			<input type="text" v-model="inputValue">
			<button @click="handleSubmit">提交</button>
		</div>
		<ul>
			<!--
				 使用全局组件 
				父组件给子组件传递参数的过程:
					1、在父组件的子组件上使用属性绑定 绑定需要传递的参数
					2、在子组件中使用props接受父组件的参数

			-->
			<todo-item 
				v-for='(item,index) of list' 
				:key="index"
				:item="item"
				:index="index"
				@delete="deleteItem">  
				
			</todo-item>
		</ul>

	</div>
	<script type="text/javascript">
		
		//全局组件注册
		Vue.component('todo-item',{
			//子组件要先接受父组件的参数
			props:['item','index'],
			template:"<li @click='handleClick'>{{item}}</li>",
			// 注意; 在组件中 data必须是一个function
			data:function(){
				return {

				}
			},
			methods:{
				handleClick:function(){
					//子组件需要将点击的li对应的index传递给父组件    子组件传参个父组件  使用发布订阅模式
					this.$emit('delete',this.index);
				}
			}
		})


		//注册一个局部组件
		// var todoItem = {
		// 	template:'<li>item</l1>'
		// }

		
		var app = new Vue({
			el:'#app',
			data:{
				inputValue:'',
				list:[]
			},
			// components:{
			// 	'todo-item':todoItem
			// },
			methods:{
				handleSubmit:function(){
					//将文本框的内容添加到list中
					this.list.push( this.inputValue );
					this.inputValue = '';
				},
				deleteItem:function(index){
					
					this.list.splice(index,1);
				}
			}
		})
	</script>
</body>
</html>

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。要实现一个具有添加删除功能的列表,我们需要使用Vue的一些核心概念,如数据和事件处理。 首先,我们需要在Vue实例中定义一个数据属性来存储列表的项。我们可以使用数组来表示该列表,并通过在Vue实例的data选项中初始化它。例如: ``` data() { return { items: [] } } ``` 接下来,我们需要在页面中设置一个点击事件,该事件将触发添加新项到列表的逻辑。我们可以使用Vue的@click指令来绑定该事件并指定一个方法处理它。例如: ``` @click="addItem" ``` 在Vue实例的methods选项中,我们可以定义一个名为addItem的方法来实现添加项的逻辑。该方法将向列表的数组中推送一个新的项。例如: ``` methods: { addItem() { this.items.push("新项") } } ``` 类似地,我们还可以设置一个删除按钮或图标,并为其绑定一个点击事件处理方法。在该方法中,我们使用Vue的splice方法从数组中删除指定的项。例如: ``` methods: { removeItem(index) { this.items.splice(index, 1) } } ``` 最后,我们需要在页面上使用Vue的v-for指令循环渲染列表的项,并将索引传递给删除方法。例如: ``` <div v-for="(item, index) in items" :key="index"> {{ item }} <button @click="removeItem(index)">删除</button> </div> ``` 通过上述步骤,我们就可以在Vue实现一个具有添加删除功能的列表。点击添加按钮将添加新项,并且每个项都有一个删除按钮,点击删除按钮将删除对应的项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值