Vue 学习 之 封装模块方法

<template>
  <div >  
    <!-- 实现回车键事情@keydown="doAdd($event)"  -->
    <input type="text"  v-model='todo' @keydown="doAdd($event)" />  
    <hr>
    <br>
    <h2>进行中</h2>
    <!-- @change="saveList()"点击文本框时发生改变机制事情 -->
     <ul>
        <li v-for="(item,key) in list" v-if="!item.checked">
           <input type="checkbox" v-model="item.checked" @change="saveList()" /> {{item.title}}   
           -- <button @click="removeData(key)">删除</button>
        </li>
      </ul>
    <br>
    <h2>已完成</h2>
  <ul>      
        <li v-for="(item,key) in list" v-if="item.checked">
          <input type="checkbox"  v-model="item.checked" @change="saveList()" /> {{item.title}}  
          -- <button @click="removeData(key)">删除</button>
        </li>
      </ul>
    <br>
  </div>
</template> 
<script>
import storage from './model/storage.js';
console.log(storage);
    export default {     
      data () {  /*业务逻辑里面定义的数据*/
        return {
          todo:'',
          list:[],
        }
      },
      methods:{
       // 新增
        doAdd(e){
          // connect.log(e); 
          //新增时直接按回车键盘显示 键位==keyCode==13
          if(e.keyCode==13){
            this.list.push({
              title:this.todo,
              checked:false,
            })           
          }
         // 调用 组件显示 storage
           storage.set('list',this.list);
          //缓存
        //  localStorage.setItem('list',JSON.stringify(this.list))
        },
          //删除
          removeData(key){
            this.list.splice(key,1)
             //缓存
              storage.set('list',this.list);
          // localStorage.setItem('list',JSON.stringify(this.list))
          },
          // 每次点击文本框checkbox改变时,从新保存一下
          saveList(){
            // localStorage.setItem('list', JSON.stringify(this.list))
             storage.set('list',this.list);
          },       
      },
      //生命周期函数,vue页面刷新就会触发的方法(和 bata  methods 同级)
          mounted(){
        //  var list=JSON.parse(localStorage.getItem('list'));
        //调用组件使用
        var list=storage.get('list');
          //判断是否存在
          if(list){
            this.list=list;
          }
          }        
    }
</script>
<style scoped >
</style>

封装操作

//封装操作,localstorage 本地存储的方法,模块化文件
//封装模块方法 
var storage={
    set(key,value){
        localStorage.setItem(key,JSON.stringify(value));
    },
    get(key){
        return JSON.parse(localStorage.getItem(key));
    },
    remove(key){
        localStorage.removeItem(key);
    }
}
//把storage 暴露出去
export default storage;

显示

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值