Vue+element實(shí)現(xiàn)todo(四)

(一)編輯item
現(xiàn)在data里添加一個(gè)newtodotitle的屬性,以防我們不想編輯回答原來的值,另一個(gè)就是無論是否在編輯狀態(tài)。輸入框總是會(huì)出現(xiàn),再在data里添加一個(gè)edittodo的屬性,就是說,如果edittodo為空,則一定不在編輯狀態(tài)

image.png

然后再給I標(biāo)簽綁定一個(gè)點(diǎn)擊事件,當(dāng)點(diǎn)擊時(shí),輸入框才會(huì)出現(xiàn),
image.png

這里我們使用了一個(gè)全新的對(duì)象存儲(chǔ),如果不這樣做的話,我們對(duì)item的任何修改都會(huì)反應(yīng)到editTodo,為防止這樣情況,我們要為editTodo創(chuàng)建一個(gè)全新的對(duì)象。
這時(shí)點(diǎn)擊I標(biāo)簽,發(fā)現(xiàn)所有的輸入框都出現(xiàn)了,我們需要再增加一個(gè)條件,只有item的ID和editTodo的ID相等時(shí),才表示此item正在編輯,
image.png

然后將Item的值跟Input綁定,使用v-model,item 的 title 就會(huì)跟著編輯框輸入的值來變化了,而且想反悔隨時(shí)還原,因?yàn)橐呀?jīng)把編輯前的狀態(tài)存到editTodo里了,

接下來就是敲擊回車,先綁定一個(gè)editDown事件


image.png

因?yàn)閕tem.title就是跟隨輸入框變化的,所以直接把editTodo的值直接清空,這樣v-if的判斷也會(huì)失效,編輯框也會(huì)隱藏。


image.png

如果要取消,再綁定一個(gè)事件cancelEdit事件
image.png

把編輯的 item 標(biāo)題還原,我們的原始信息存在 editedTodo,取出來即可,然后把editTodo的值直接清空


image.png

(二)自動(dòng)聚焦
現(xiàn)在還有一個(gè)問題,就是我們點(diǎn)擊后,不能自動(dòng)聚焦,需要手動(dòng)才可以編輯,input 元素有一個(gè) focus 方法,問題是如何在vue中獲取,從而操作他,Vue 的自定義指令可以完成這個(gè)功能。官方文檔讓我們自己注冊(cè)一個(gè)指令,指令就是之前寫到的v-if,v-model這些,然后實(shí)現(xiàn)鉤子函數(shù),指定被綁定元素的行為,按照官方文檔比葫蘆畫瓢實(shí)現(xiàn)一個(gè)focus指令,

image.png

然后就可以使用這個(gè)指令,綁定到input框,因?yàn)樵匾坏┏霈F(xiàn)一定要聚焦的,所以條件始終為 true。
image.png

這樣用戶體驗(yàn)就會(huì)好很多~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • vue概述 在官方文檔中,有一句話對(duì)Vue的定位說的很明確:Vue.js 的核心是一個(gè)允許采用簡潔的模板語法來聲明...
    li4065閱讀 7,594評(píng)論 0 25
  • 深入響應(yīng)式 追蹤變化: 把普通js對(duì)象傳給Vue實(shí)例的data選項(xiàng),Vue將使用Object.defineProp...
    冥冥2017閱讀 4,953評(píng)論 6 16
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,365評(píng)論 0 6
  • 主要還是自己看的,所有內(nèi)容來自官方文檔。 介紹 Vue.js 是什么 Vue (讀音 /vju?/,類似于 vie...
    Leonzai閱讀 3,536評(píng)論 0 25
  • 看著這部電影(愛有來生),忘不了劇情。若愛有來生,茶涼了,我再幫你續(xù)一杯吧……就這些簡單的話演繹了一個(gè)世紀(jì)的愛恨...
    伍月的晴空閱讀 482評(píng)論 10 4

友情鏈接更多精彩內(nèi)容