中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue如何實現本地存儲添加刪除修改功能

發布時間:2021-11-25 13:15:28 來源:億速云 閱讀:419 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關vue如何實現本地存儲添加刪除修改功能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體內容如下

實現功能:

輸入的內容添加到正在進行列表中,

雙擊修改功能,

點擊esc鍵,取消,還是之前的內容,

點擊回車,修改成功,

修改框失焦時修改成功,

選中按鈕時進入已完成列表,未選中時在正在進行中列表,

點擊刪除進行刪除當行,

本地存儲下次打開上次添加的還在

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
  <style type="text/css">
  *{
   padding: 0;margin: 0;
  }
   ul{
    list-style: none;
   }
   li{
    width: 220px;
    height: 40px;
    border: 1px solid gainsboro;
    margin-top: 4px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #6CE26C;
   }
   .del{
    margin-right: 5px;
    border: none;
    width: 20px;
    height: 20px;
    background-color: #008200;
   }
  </style>
 </head>
 <body>
  <div id="app">
   <!-- 過濾輸入內容首尾空白符 -->
   <!-- 回車事件 -->
   <input type="text" v-model.trim="temp" @keyup.enter="additem()"/>
   <!-- 獲取正在進行的數量 -->
   <h4>正在進行中{{undolist.length}}</h4>
   <ul class="list">
    <!-- 將正在進行的內容遍歷顯示出來 -->
    <li class="item" v-for="item in undolist" :key="item.name">
     <div class="">
      <!-- 多選框為未選中false狀態 -->
     <input type="checkbox" v-model="item.done" />
     <!-- 默認為state是0,當雙擊時state為1,內容賦給tempEdit-->
     <span v-show="item.state==0" @dblclick="item.state=1;tempEdit=item.name">{{item.name}}</span>
     <!-- input框內容為tempEdit的值,state=1時顯示輸入框,
     點擊esc時state為零隱藏,內容還是原來的值,不進行修改,
     當回車時state為0就隱藏input框,將修改過得tempEdit,賦給item.name
     當失焦時state為0就隱藏input框,將修改過得tempEdit,賦給item.name
      -->
     <input type="text" v-model="tempEdit" v-show="item.state==1" 
     @keyup.esc="item.state=0;tempEdit=item.name"
     @keyup.enter="item.state=0;item.name=tempEdit"
     @blur="item.state=0;item.name=tempEdit"
     />
     </div>
     <!-- 點擊刪除時刪除其內容 -->
     <button type="button" @click="removeitem(item)" class="del">X</button>
    </li>
   </ul>
   <!-- 已完成數量 -->
   <h4>已經完成{{doneList.length}}</h4>
   <ul class="list">
    <!-- 將已完成的內容遍歷顯示出來 -->
    <li class="item" v-for="item in doneList" :key="item.name">
     <div class="">
      <!-- 多選框為選中true狀態 -->
     <input type="checkbox" v-model="item.done" />
     <!-- 默認為state是0,當雙擊時state為1,內容賦給tempEdit-->
     <span v-show="item.state==0" @dblclick="item.state=1;tempEdit=item.name">{{item.name}}</span>
     <!-- input框內容為tempEdit的值,state=1時顯示輸入框,
     點擊esc時state為零隱藏,內容還是原來的值,不進行修改,
     當回車時state為0就隱藏input框,將修改過得tempEdit,賦給item.name
     當失焦時state為0就隱藏input框,將修改過得tempEdit,賦給item.name
      -->
     <input type="text" v-model="tempEdit" v-show="item.state==1" 
     @keyup.esc="item.state=0;tempEdit=item.name"
     @keyup.enter="item.state=0;item.name=tempEdit;"
     @blur="item.state=0;item.name=tempEdit;"
     />
     </div>
     <!-- 點擊刪除時刪除其內容 -->
     <button type="button" @click="removeitem(item)" class="del">X</button>
    </li>
   </ul>
  </div>
 </body>
 <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript">
  var vm=new Vue({
   el:"#app",
   data(){
    return{
     // 清單列表
     // getItem是獲取本地存儲數據,
     // ||"[]"如果獲取不到轉換為空的數組
     list:JSON.parse(localStorage.getItem("list")||"[]"),
     // 臨時添加的數據存放處
     temp:'',
     // 修改框的臨時數據存放處
     tempEdit:''
    }
   },
   methods:{
    // 添加
    additem(){
     // 文本框為空時就返回
     if(this.temp===""){return;}
     // 添加到后面
     this.list.push({
      name:this.temp,
      done:false,
      state:0
     })
     // 清空臨時框
     this.temp="";
    },
    // 刪除
    removeitem(item){
     // 彈框
     var flag=window.confirm("確定要刪除嗎?");
     if(flag){
      // 查找符合條件元素的索引值
      var ind=this.list.findIndex(value=>value.title===item.title);
      // splice從第ind刪除一個
      this.list.splice(ind,1);
     }
    }
   },
   computed:{
    // 通過計算把現有的list數據計算出已完成和未完成
    // 未完成
    undolist(){
     // filter數組的過來函數,如果返回結果為真則當前遍歷的數據保留
     // 否則就會被過濾掉
     return this.list.filter(item=>!item.done);
     
    },
    // 已完成
    doneList(){
     return this.list.filter(item=>item.done);
    }
   },
   watch:{
    "list":{
     handler(){
      // setItem設置本地數據
      // JSON.stringify把js對象轉換為json字符串
      // JSON.prase把字符串轉換為js對象
      localStorage.setItem("list",JSON.stringify(this.list))
     },
     deep:true,
    }
   }
  })
 </script>
</html>

vue如何實現本地存儲添加刪除修改功能

感謝各位的閱讀!關于“vue如何實現本地存儲添加刪除修改功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

马尔康县| 吉木萨尔县| 鹤岗市| 平舆县| 黑水县| 汶川县| 柳州市| 茶陵县| 张家界市| 长沙县| 五大连池市| 铅山县| 芒康县| 衡水市| 筠连县| 博客| 肇东市| 文昌市| 桂林市| 德昌县| 深圳市| 永定县| 鱼台县| 乃东县| 巴南区| 临颍县| 定南县| 保德县| 承德县| 资源县| 铁力市| 略阳县| 阜新市| 蓬安县| 中西区| 巴林右旗| 扎赉特旗| 雅安市| 布尔津县| 福州市| 新津县|