Vue组件--todolist

11 篇文章 0 订阅
5 篇文章 0 订阅

代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/vue.js" ></script>
		<link rel="stylesheet" href="css/bootstrap.css" />
	</head>
	<body>
		<div id="app">
			<div class="container">
				<mheader :list="list" @addinfo="addsome"></mheader>
				<ul class="list-group">
				  <mlist v-for="(item,index) in list" :key="item.id" :item="item" :index="index" @del="delsome"></mlist>
				</ul>

			</div>
						
		</div>
		<script>
			Vue.component("mheader",{
				data(){
					return {
						user:"",
						content:""
					}
				},
				props:["list"],
				template:`
					<div class="header">
						<div class="form-group">
							<label for="user">执行人</label>
							<input type="text" class="form-control" v-model="user"  id="user"/>
						</div>
						<div class="form-group">
							<label for="content">内容</label>
							<input type="text" class="form-control" v-model="content" id="content" @keyup.enter="addinfo"/>
						</div>
						<div class="form-group">
							<button class="btn btn-danger" @click="addinfo">发送</button>
						</div>
					</div>
					`,
				methods:{
					addinfo(){
						if (this.user.length==0||this.content.length==0) {
							alert("输入内容不能为空")
							return
						}
						var obj = {
							id:this.list.length+1,
							user:this.user,
							content:this.content
						}
						this.$emit("addinfo",obj)
						this.user=""
						this.content=""
					}
				}
			})
			
			Vue.component("mlist",{
				data(){
					return {
						
					}
				},
				props:["item","index"],
				template:`					
						<li class="list-group-item">
						<input type="checkbox" @click="del"/>
							{{item.content}}
							<span class="badge">
								{{item.user}}
							</span>
						</li>				
				`,
				methods:{
					del(){
//						console.log(this.list)
                        this.$emit("del",this.index)
					}
				}
			})
		
		
		
		
			new Vue({
				el:"#app",
				data:{
					list:[
						{id:1,user:"Asa",content:"回家打扫"}
					]
				},
				methods:{
					addsome(obj){
//						console.log(obj)
						this.list.push(obj)
						
					},
					delsome(index){
						this.list.splice(index,1)
					}
				}
			})
		</script>
	</body>
</html>

效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Todolist 是一个基于 Vue.js 框架开发的任务清单应用。通过使用 Vue.js 的响应式数据绑定和组件化开发的特性,可以实现动态更新数据和交互效果。 首先,我们可以使用 Vue 的模板语法来编写任务清单的布局和 HTML 结构。通过 v-for 指令可以循环渲染任务列表,使得我们可以方便地添加、编辑和删除任务。 其次,通过使用 Vue 的计算属性,我们可以实现对任务列表进行过滤和排序操作。比如可以根据任务状态(已完成、未完成)来显示不同的任务列表,也可以根据任务的添加时间或者截止时间来进行排序。 在交互方面,我们可以使用 Vue 的事件绑定机制来实现添加、编辑和删除任务的功能。比如,可以使用 v-on 指令绑定点击事件,当用户点击添加按钮时,会触发相应的方法来添加新的任务到任务列表中。 另外,我们可以通过使用 Vue 的指令和表单元素的双向数据绑定来实现任务的编辑功能。当用户点击某个任务的编辑按钮时,可以根据该任务的索引值,展示一个输入框供用户编辑任务内容,完成编辑后,会自动将编辑后的内容更新到任务列表中。 最后,我们可以使用 Vue 的路由功能来实现多个页面之间的切换。比如可以添加一个导航栏,每个导航项对应一个页面,点击导航项时,会切换到对应的页面,从而实现任务清单的不同视图切换。 综上所述,Vue Todolist 是一个基于 Vue.js 框架开发的任务清单应用,通过利用 Vue.js 的特性,可以实现数据的实时更新和交互效果,提供灵活的任务管理功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值