上一章弄出來多選框的數(shù)據(jù)是固定、事先寫好的,這當然不是個能用的待辦小程序 。
本章將其改造為可添加新條目的動態(tài)數(shù)據(jù) , 讓程序活動起來 。
視圖層既然要添加新數(shù)據(jù),那必然得有一個輸入框 。除此之外還得有提交按鈕,以便讓程序知道什么時候應該記錄新數(shù)據(jù) 。
修改 pages/index/index.wxml ,在根元素 <view> 的頭部添加代碼:
<!-- pages/index/index.wxml --><view class="container"><!-- 在container的頭部添加新代碼 --><view class="list-input"><!-- 輸入框本體 --><view class="weui-cell weui-cell_input"><inputvalue="http://www.wokk.cn/{{inputedValue}}"bind:input="keyInput"class="weui-input"maxlength="50"placeholder="請輸入待辦事項"/></view><!-- 分割線 --><view class="line"></view><!-- 提交按鈕 --><buttonbind:tap="inputSubmit"class="weui-btn"type="default"style="color: gray;">提交</button></view><!-- 上一章的其他代碼在下面這里 --><!-- ... --></view>總共添加了輸入框、分割線和提交按鈕三個元素,分別來看 。
- 數(shù)據(jù)框:最核心的部分就是 value 和 bind:input 這兩個屬性 。value 與邏輯層數(shù)據(jù) inputedValue 進行綁定,只要 inputedValue 改變,那么輸入框中的內容也跟著改變 。bind:input 監(jiān)聽輸入事件,調用邏輯層的 keyInput 方法以操作數(shù)據(jù) 。(邏輯層也就是 index.js 文件)
- 分割線:不像傳統(tǒng)網(wǎng)頁開發(fā),小程序沒有提供現(xiàn)成的 <hr> 標簽,因此要通過 .wxss 樣式文件封裝一個 。(馬上講)
- 提交按鈕:綁定了按鈕點擊事件 inputSubmit()。
接下來,定義 .line 、 .list-input 的外觀樣式 。
修改 pages/index/index.wxss 文件:
/* pages/index/index.wxss */.list-input {padding-top: 30rpx;padding-bottom: 50rpx;}.line {width: 100%;height: 3rpx;background: #ddd;margin-bottom: 20rpx;}與傳統(tǒng) .css 樣式稍有區(qū)別的是,小程序有自己的尺寸單位,即 rpx。這個單位將各類不同屏幕尺寸的移動設備做了映射 , 盡可能保證頁面元素在各設備上的外觀一致 。詳細了解見wxss尺寸 。邏輯層搞定視圖層后,來整激動人心的邏輯層 。
修改 pages/index/index.js 文件如下:
Component({// 頁面持有的數(shù)據(jù)data: {// todo-list數(shù)據(jù)items: [],// 輸入框當前內容inputedValue: "",},methods: {// 監(jiān)聽鍵盤輸入事件keyInput(e) {this.setData({inputedValue: e.detail.value})},// 監(jiān)聽提交按鈕inputSubmit() {let items = JSON.parse(JSON.stringify(this.data.items))// 設置新條目的idlet newID = 1;if (items[0] !== undefined) {newID = items[0].id + 1;}// 將新條目更新到items中// 并將輸入框的值清空items.unshift({id: newID,content: this.data.inputedValue,checked: false,});this.setData({items: items,inputedValue: "",})},// 已有代碼checkboxChange(e) {// ...},})拆解如下:- data 部分:將 items 初始化為空數(shù)組 , 我們已經(jīng)不需要固定的內容了 。新增數(shù)據(jù) inputedValue ,仔細看它也是和視圖層對應的,綁定了輸入框的值 。
- methods 部分:keyInput() 方法根據(jù)輸入值,實時更新 inputedValue 的值 。inputSubmit() 也不復雜,每當用戶點擊了提交按鈕,此方法就將新條目的 id 值、待辦內容 content 、以及完成狀態(tài) checked 設置好;最后將新數(shù)據(jù)更新回狀態(tài) items 中,并且將 inputedValue 置空以便等待下一次的輸入 。

文章插圖
輸入條目并點擊提交后:

文章插圖
功能正常 , 完美 。
總結開發(fā)傳統(tǒng)頁面時,免不了直接操作、修改、同步頁面元素,煩人不說還容易出錯 。而小程序和其他現(xiàn)代前端框架非常相似 , 幫你處理好數(shù)據(jù)同步等問題,你只要關心實際的業(yè)務邏輯就可以了 。是不是感受到它的方便了?
以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助:- 手機內屏與外屏的區(qū)別
- 如何在Win7中建立WiFi熱點,讓手機共享上網(wǎng)
- TC Games連接手機的詳細步驟
- 高效利用QQ快傳進行手機文件傳輸
- 如何在中國移動官網(wǎng)查詢手機移動卡PUK碼并解鎖
- 電腦版微信文件傳輸操作指南
- 如何在逍遙安卓模擬器上使用微信掃一掃功能
- 高速免費時間段用手機提醒 五一高速路免費的時間2023
- 如何下載并安裝PC版微信
- 蘋果也賣不動了? 蘋果14PRO MAX價格再創(chuàng)新低
