发表于: 2019-10-10 23:11:14

1 785


今天完成的事情:

Todolist

<input type="text" v-model="todo">
<button @click="doAdd()">+增加</button>

首先写一个input框一个增加的按钮:

data() {
  return {
      msg'vue',
      todo:'',
      list:[],
  }

Data里面input的值设置为空,在设置一个空的数组list

<ul>
    <li v-for="item in list">
        {{item}}
    </li>
</ul>

V-for利用双向绑定点击增加的时候在input里面输入值然后出来

,methods:{
    doAdd(){
        /*1获取文本框输入的值,2把文本框的值push到list里面*/
        this.list.push(this.todo);
        /*点击增加后把input里面的值设置为空*/
        this.todo='';
    }

 

显示结果:

理解:

点增加获取input里面的值todo:’’,获取之后给list push然后就是渲染回显

然后是删除,样式什么就先不计较直接在li里面设置一个按钮:

<li v-for="item in list">
    {{item}}
    <button @click="dedApp()">-删除</button>
</li>

删除的就话首先想到就是获取数组下标很简单,,key

<li v-for="(item,key) in list">
   {{key}}---{{item}}---
    <button @click="dedApp()">-删除</button>
</li>

 

dedApp(key){
    this.list.splice(key,1)
}

 

点击删除就是吧list里面的值清空.splice(key,1)是清空数组的固定用法

进行中完成中,首选我们要明白一个逻辑当为true的时候是完成中,反之为进行中

<h2>进行中</h2>
<ul>
    <li v-for="(item,key) in listv-if="!item.checked">
       {{key}}---{{item.title}}---
        <input type="checkbox" v-model="item.checked">
        <button @click="dedApp()">-删除</button>
    </li>
</ul>
<br>
<hr>
<br>
<h2 >已完成</h2>
<ul>
    <li v-for="(item,key) in listv-if="item.checked">
        {{key}}---{{item.title}}---
        <input type="checkbox" v-model="item.checked>
        <button @click="dedApp()">-删除</button>
    </li>
</ul>

利用双向绑定实现点击checkbox跟句判断成为进行中或者是已完成

 

doAdd(){
    /*1获取文本框输入的值,2把文本框的值push到list里面*/
    this.list.push({
        title:this.todo,
        checked:false
    });
    /*点击增加后把input里面的值设置为空*/
    this.todo='';

},

 

V-if就是判断,list里面设置的是默认渲染的值:

list:[
    {
        title:'已完成',
        checked:true
    },
    {
        title:'进行中' ,
        checked:false
    }
],

 



返回列表 返回列表
评论

    分享到