todolist

modle.js

 

 

 

<tem

const storage = {

  set (key, value) {

     localStorage.setItem(key, JSON.stringify(value))

  },

  get (key) {

    return JSON.parse(localStorage.getItem(key))

  },

  remove (key) {

      localStorage.removeItem(key)

  }

 

}

 组件本身

export default storage

plate>

  <div class="tofo">

    <h1>todoList 列表</h1>

    <hr />

    <input type="text" v-model="todoValue" @keyup.enter="keyUp" />

    <hr />

    <div>

      <h1>未完成</h1>

      <ul>

        <template v-for="(item, index) in list" :key="index">

          <li v-if="!item.checked">

            <input type="checkbox" name="" id="" v-model="item.checked"  @change="changeItem"/>

            {{ item.value }}---<button @click="delItem(index)">删除</button>

          </li>

        </template>

      </ul>

      <h1>已经完成</h1>

      <ul>

        <template v-for="(item, index) in list" :key="index">

          <li v-if="item.checked">

            <input type="checkbox" name="" id="" v-model="item.checked" @change="changeItem"/>

            {{ item.value }}---<button @click="delItem(index)">删除</button>

          </li>

        </template>

      </ul>

    </div>

  </div>

</template>

 

<script>

import storage from '../model/model.js'

export default {

  data() {

    return {

      list: [],

      todoValue: ""

    };

  },

  methods: {

    // 添加

    keyUp() {

      if (this.todoValue) {

        this.list.push({

          value: this.todoValue,

          checked: false

        });

        this.todoValue = "";

        storage.set('todolist', this.list)

        // localStorage.setItem('todolist', JSON.stringify(this.list))

      }

    },

 

    // @click="delItem(index)"

    delItem(index) {

      this.list.splice(index, 1);

           storage.set('todolist', this.list)

      // localStorage.setItem('todolist', JSON.stringify(this.list))

    },

    changeItem () {

           storage.set('todolist', this.list)

      // localStorage.setItem('todolist', JSON.stringify(this.list))

    }

  },

  mounted() {

    let statr = storage.get('todolist')

    // let statr = JSON.parse(localStorage.getItem('todolist'))

    if (statr) {

      this.list = statr

    }

  },

};

</script>

 

<style lang='scss' scoped>

.tofo {

  width: 500px;

  height: 300px;

  border: 1px solid #333333;

  position: absolute;

  left: 900px;

  top: 0;

  h1 {

    text-align: center;

  }

  input {

    margin-left: 100px;

  }

}

</style>

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值