Vue 学习 之 封装模块方法

2023年1月25日13:27:17
<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;

显示

Vue 学习  之 封装模块方法

  • 作者:00-小白
  • 原文链接:https://blog.csdn.net/weixin_42504044/article/details/100579992
    更新时间:2023年1月25日13:27:17 ,共 1670 字。