vue实现TodoList案例,适合新手入门

案例要求
使用 vue 完成案例;
输入任务,按回车添加任务;
点击复选框表示已经完成任务;
点击删除任务;

*{
 margin: 0;
     padding: 0;
     list-style: none;
 }

 #app{
     width: 300px;
     height: 1000px;
     margin: 50px auto;
 }
 #app>.top{
     width: 100%;
     height: 20px;
     text-align:center
 }
 h2{
     margin-top: 10px;
 }
 h2>button{
     float: right;
 }
 ul>li{
     background: pink;
     margin: 2px;
 }
 ul>li>button{
     float: right;
 }
 <div id="app">
        <input v-model = "val" type="text">
        <button @click = "addItem">添加</button>
        <div>
            <h2>
                正在进行  ---  {{ len }}
            </h2>
            <ul>
                <li v-for="(item, index) in arr" v-show = "!item.checked">
                    <input v-model = "item.checked" type="checkbox">
                    {{ item.val }}     
                    <button>删除</button>
                </li>
            </ul>

            <h2>
                已经完成  ---  {{ arr.length - len }}
            </h2>
            <ul>
                <li v-for="(item, index) in arr" v-show = "item.checked">
                    <input v-model = "item.checked" type="checkbox">
                    {{ item.val }}     
                    <button>删除</button>
                </li>
            </ul>
        </div>
    </div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
     new Vue({
         el: "#app",
         data: {
             // input中输入的值
             val: "",
             // 总的任务
             arr: []
         },
         // created() {
             // forEach  没有返回值
             // map   有返回值
             // filter   做筛选
             // var datas = this.arr.filter((item) => {
             //     return item === 2
             // })
             // // [2]
             // console.log(datas)
         // }, 
         computed: {
             len() {
                 return this.arr.filter((item) => {
                     return item.checked === false
                 }).length
             }
         },
         methods: {
             addItem() {
                 this.arr.push({
                     val: this.val,
                     checked: false
                 })
                 this.val = ""
             },
             deleteSelected(){
                 this.arr.splice(0,1)
             },
         }
     })
 </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半生过往

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值