零基礎(chǔ)微信小程序開發(fā)及實例詳解
Feb 28, 2022 pm 05:50 PM本篇文章給大家?guī)砹岁P(guān)于微信小程序的相關(guān)知識,主要介紹了微信小程序的開發(fā)步驟以及主要的過程詳解,希望對大家有幫助。
【相關(guān)學(xué)習(xí)推薦:小程序?qū)W習(xí)教程】
目前,小程序行業(yè)已經(jīng)成為互聯(lián)網(wǎng)營銷的熱門黑馬之一,依托于各大流量平臺,小程序行業(yè)具有天然的用戶基礎(chǔ)和得天獨厚的資源優(yōu)勢,憑借其方便快捷的操作以及簡單通俗的模式,僅短短一年的時間,就迎來了爆發(fā)性的增長。目前市場上開發(fā)一款小程序幾千到幾萬不等,以騰訊云為例,由騰訊官方團隊設(shè)計,上線立即投入運營的一款小程序以每年680~3680的價格出售。復(fù)雜的小程序設(shè)計的暫且不談,從最簡單的說起。
小程序的開發(fā)方式分兩種,一種是定制開發(fā),一種是第三方平臺開發(fā)。定制開發(fā)價格較高,幾萬甚至十幾萬不等,并且開發(fā)周期較長;
第三方平臺開發(fā)價格較低,根據(jù)功能幾千就可以開發(fā)好,最主要是開發(fā)周期短,一個星期左右就可上線運營。
一、微信小程序開發(fā)必備技術(shù)
一、HTML語言
HTML就是超文本標記語言的簡寫,HTML主要負責(zé)網(wǎng)頁的骨架,就如同動物的骨架一樣,HTML語言就是支撐網(wǎng)頁布局的骨架。
二、CSS
CSS,是層疊樣式表的簡寫,主要負責(zé)網(wǎng)頁樣式,網(wǎng)頁內(nèi)容如何分布,板塊背景,顏色等外觀問題可以有CSS控制。
三、JavaScript
簡稱js,是一種動態(tài)的腳本語言。在以前js僅僅是用于網(wǎng)頁交互的腳本語言,隨著Google v8引擎、angular、react等前端框架使得前后端分離的趨勢愈加明顯以及node、js等技術(shù)的開發(fā)使得js在服務(wù)器端也迸發(fā)出非凡的活力,成為當(dāng)前非?;钴S的語言之一。
四、服務(wù)器語言
如果不是專業(yè)的后端開發(fā)者,可能后端有一定的難度其學(xué)習(xí)曲線較陡。但是,仍然建議開發(fā)者學(xué)習(xí)一下后端語言,至少需要了解大致的原因框架,能夠看懂其代碼邏輯,這樣不僅可以很好的實現(xiàn)前后端的配合,也能夠在小程序出現(xiàn)bug的時候扯皮用。服務(wù)器的語言有很多比較常用的是PHP、Java、Python、ASP等技術(shù),建議初學(xué)者根據(jù)具體需求挑選進行學(xué)習(xí)。
五、數(shù)據(jù)庫語言
如果你開發(fā)的小程序數(shù)據(jù)量不大,架構(gòu)不復(fù)雜的話數(shù)據(jù)庫語言相對來說是比較簡單的,一般學(xué)會一些常用的命令以及常出現(xiàn)的問題就能夠應(yīng)付使用。常用的數(shù)據(jù)庫有免費的MySQL、msSQL、MongoDB、Oracle等數(shù)據(jù)庫。若數(shù)據(jù)量非常龐大,很容易導(dǎo)致小程序首屏白頁,這時就要考慮優(yōu)化。
注:具體落實到開發(fā)軟件上,大同小異,每款軟件都有他們的特點,語言標準規(guī)則有些不同,常見的開發(fā)工具有:微信開發(fā)者工具、字節(jié)跳動開發(fā)者工具、Sublime Text 3。這里我們使用微信開發(fā)者工具。
二、微信開發(fā)者工具
一、下載安裝
百度“微信公眾平臺”,選擇小程序
在開發(fā)者工具中選擇相應(yīng)的版本下載
推薦安裝64位穩(wěn)定版
二、新建項目
在啟動頁填寫項目名稱、目錄、AppID(選擇測試號)
這是基礎(chǔ)框架
工具自帶的啟動日志,下面開始了解小程序開發(fā)的框架
三、程序框架
根目錄下兩個文件夾
pages是用于存放頁面文件的文件夾;
utils是用于存放公共js的文件夾;
小程序大致分兩塊,首頁和分頁。首頁即登錄后展示的第一個頁面,首頁和分頁分別占一個文件夾,且都包含在pages文件夾下,很顯然,初始化的小程序只有兩個頁面(首頁index和日志頁logs)
index下又包含首頁界面設(shè)計所需要的文件(index.js、index.json、index.wxss、index.wxml)
index.js即首頁面的邏輯文件,類似于js文檔;
index.json即首頁面的配置文件,比如標題字,背景之類;
index.wxss即首頁面的樣式表文件,類似于CSS文檔;
index.wxml即首頁面的結(jié)構(gòu)文件,類似于HTML文檔。
同樣,日志文件logs與index基本類似(若添加新的頁面,需在pages文件下新增文件夾)
而根目錄下的app.js、app.json、app.wxss、project.config.json、sitemap.json即小程序的全局設(shè)置。
app.js即項目的入口文件,用于創(chuàng)建應(yīng)用程序?qū)ο?,啟動小程序時首先調(diào)用;
app.json即當(dāng)前小程序的全局變量,包括了小程序的頁面路徑、界面表現(xiàn)、底部tab等;
app.wxss即小程序的公共樣式表,開發(fā)者可在頁面組件的class屬性上直接使用app.wxss中聲明的樣式規(guī)則;
project.config.json即項目配置文件,通俗來說就是最開始開發(fā)項目時的個性化配置,其中會包括編輯器的顏色、代碼上傳時自動壓縮等等一系列選項。
sitemap.json用于配置小程序及其頁面是否允許被微信索引,文件內(nèi)容為一個JSON對象,如果沒有sitemap.json,則默認為所有頁面都允許被索引;
開發(fā)者工具在創(chuàng)建項目后自動將一些公共的代碼抽離成為一個單獨的 js (utils.js)文件,作為一個模塊;也就是utils文件夾,用來放自己封裝的工具類函數(shù),是一個共享的方法。
四、程序調(diào)試區(qū)
在程序調(diào)試區(qū)有幾種常用的調(diào)試模式
1.Console
Console就是控制臺,可以顯示錯誤信息和打印變量的信息等
2.Wxml
Wxml相當(dāng)于HTML+CSS,左側(cè)的區(qū)域是HTML語言+CSS的一些標簽屬性。右側(cè)可以便捷的設(shè)置CSS的屬性
3.Sources
Sources顯示了當(dāng)前項目的所有腳本文件,微信小程序框架會對這些腳本文件進行編譯
4.Network
Network用來顯示與網(wǎng)絡(luò)相關(guān)的信息,此處暫無網(wǎng)絡(luò)請求
5.AppData
AppData顯示當(dāng)前項目顯示的具體數(shù)據(jù),可以在這里編譯,并且會在頁面實時顯示
三、項目實戰(zhàn)(附核心代碼)
一、項目介紹
利用微信開發(fā)者工具制作了一個最基礎(chǔ)的小程序“太行精靈”(微信直接搜索),功能僅為展示,無任何商業(yè)功能。
首頁效果圖如下
二、項目框架
“太行精靈”小程序設(shè)有6個頁面,分別是首頁index、內(nèi)容頁discovery、個人主頁setting、登錄注冊頁login、打卡頁Calendar、掃碼支付頁please
1.index
1)index.js
var?api?=?require('../../utils/api.js')var?app?=?getApp()Page({ ??data:?{ ????lists:?[ ??????{ ????????'id':?'1', ????????'image':?'/img/1.jpg', ????????'title':?'太行領(lǐng)秀|?長治·上黨郡?【深度了解長治紅色旅游景點】', ????????'num':'304', ????????'state':'進行中', ????????'time':?'4月21日?17:59', ????????'address':?'長治市·潞州區(qū)' ???????? ??????}, ??????{ ????????'id':?'2', ????????'image':?'/img/2.jpg', ????????'title':?'長治·武鄉(xiāng)·革命圣地', ????????'num':'380', ????????'state':'已結(jié)束', ????????'time':?'4月15日?17:39', ????????'address':?'長治市·武鄉(xiāng)縣' ??????}, ??????{ ????????'id':?'3', ????????'image':?'/img/3.jpg', ????????'title':?'沁源之美·靈空山', ????????'num':'500', ????????'state':'進行中', ????????'time':?'2月04日?17:31', ????????'address':?'長治市·沁源縣' ??????}, ??????{ ????????'id':?'4', ????????'image':?'/img/4.jpg', ????????'title':?'革命太行邀您“與世界對話”', ????????'num':'150', ????????'state':'進行中', ????????'time':?'5月09日?17:21', ????????'address':?'長治市·潞州區(qū)' ??????}, ??????{ ????????'id':?'5', ????????'image':?'/img/5.jpg', ????????'title':?'紅色太行?·?太行山革命區(qū)', ????????'num':'217', ????????'state':'進行中', ????????'time':?'10月09日?16:59', ????????'address':?'長治市·潞州區(qū)' ??????} ????], ????list:?[ ??????{ ????????'id':?'1', ????????'image':?'/img/1.jpg', ????????'title':?'太行領(lǐng)秀|?長治·上黨郡?【深度了解長治紅色旅游景點】', ????????'num':'304', ????????'state':'進行中', ????????'time':?'10月09日?17:59', ????????'address':?'長治市·潞州區(qū)' ??????}, ??????{ ????????'id':?'2', ????????'image':?'/img/2.jpg', ????????'title':?'長治·武鄉(xiāng)·革命圣地', ????????'num':'380', ????????'state':'已結(jié)束', ????????'time':?'10月09日?17:39', ????????'address':?'長治市·武鄉(xiāng)縣' ??????}, ??????{ ????????'id':?'3', ????????'image':?'/img/3.jpg', ????????'title':?'沁源之美·靈空山', ????????'num':'500', ????????'state':'進行中', ????????'time':?'10月09日?17:31', ????????'address':?'長治市·沁源縣' ??????}, ??????{ ????????'id':?'4', ????????'image':?'/img/4.jpg', ????????'title':?'革命太行邀您“與世界對話”', ????????'num':'150', ????????'state':'已結(jié)束', ????????'time':?'10月09日?17:21', ????????'address':?'長治市·潞州區(qū)' ??????}, ??????{ ????????'id':?'5', ????????'image':?'/img/5.jpg', ????????'title':?'紅色太行?·?太行山革命區(qū)', ????????'num':'217', ????????'state':'進行中', ????????'time':?'10月09日?16:59', ????????'address':?'長治市·潞州區(qū)' ??????} ????], ????imgUrls:?[ ????????'/img/26.jpg', ????????'/img/13.jpg', ????????'/img/28.jpg', ????????'/img/14.jpg', ????????'/img/24.jpg', ????????'/img/15.jpg', ????????'/img/27.jpg', ????????'/img/27.jpg', ????????'/img/16.jpg' ????] ??}, ??onLoad?()?{ ????var?that?=?this ????app.getSystemInfo(function(res)?{ ???? that.setData({ ???????? systemInfo:?res?????? }) ????}) ????that.setData({ ????_api:?api????}) ????this.getSwipers() ????this.pullUpLoad() ??}, ??/** ???* ???*/ ???getSwipers?()?{ ?????api.get(api.SWIPERS) ???????.then(res?=>?{ ?????????this.setData({ ???????????swipers:?res.data.ads?????????}) ???????}) ???}, ??scrollR:?function(e){ ????this.setData({ ??????lists:?this.data.lists.concat(this.data.list), ????}); ??}, ??onLoad:?function?(e)?{ ????this.scrollR(e); ??}, ??scroll:?function(e){ ????this.scrollR(this.data.offset); ??}, ??//頁面跳轉(zhuǎn)函數(shù)(wxml中找bindtap="go2detail) ??go2detail:?function(param){ ????wx.navigateTo({ ? ??????url:?'/pages/discovery/discovery', ? ??????}) ??}})
2)index.json
{ ??"usingComponents":?{}}
3)index.wxml
<scroll-view scroll-y="true" bindscroll="scroll"> ??<view class="swiper"> ????<swiper indicator-dots="true" autoplay="true" interval="5000" duration="1000"> ??????<block wx:for="{{imgUrls}}" wx:key="item.id"> ????????<swiper-item> ??????????<image src="{{item}}" class="slide-image"/> ????????</swiper-item> ??????</block> ????</swiper> ??</view> ??<view class="mobi_title"> ????<text class="mobi_icon"></text> ????<text>太行精靈為你推薦</text> ??</view> ??<block wx:for-items="{{lists}}" wx:for-item="list" wx:key="list.id"> ????<view class="list" data-id="{{list.id}}"> ??????<view class="list-img"> ????????<image class="video-img" bindtap="go2detail" mode="scaleToFill" src="{{list.image}}"></image> ??????</view> ??????<view class="list-detail"> ????????<view class="list-title" bindtap="go2detail"><text>{{list.title}}</text></view> ????????<view class="list-tag"><view class="state">{{list.state}}</view><view class="join"><text class="list-num">{{list.num}}</text>人報名</view></view> ????????<view class="list-info"><text>{{list.address}}</text>|<text>{{list.time}}</text></view> ??????</view>? ????</view> ??</block></scroll-view><include src="../layout/footer.wxml"/>
4)index.wxss
/**index.wxss**/page{ height:?100%; background-color:?#efeff4;}scroll-view{ ??height:?100%;}.swiper{ ??top:?0px; ??width:?100%; ??height:?240px; }.swiper?swiper{ height:?240px;}.slide-image{ ??width:?100%;}.mobi_title{ font-size:?15px; color:?#777; ??line-height:?110%; ??font-weight:?normal; width:?100%; ??padding:?10px; ??background-color:?#f3f3f3; ??position:?relative;}.mobi_icon{ padding:?0px?1.5px; ??border-radius:?1.5px; ??background-color:?#ff7777; ??position:?relative; ??margin-right:?5px;}/*list*/.list{ overflow:?hidden; width:?100%; padding:?0?20px?0?0; border-top:?1px?solid?#eeeeee; background-color:?#fff; ??margin-bottom:?15px;}.list-img{ ??position:?relative; float:?left; width:?120px;}.list-img?.video-img{ width:?120px; height:?120px;}.list-detail{ position:?absolute; ??margin-top:?15px; ??margin-left:?135px; ??margin-right:?10px;}.list-title?text{ word-break:?break-all; ??text-overflow:?ellipsis; ??display:?-webkit-box; ??-webkit-box-orient:?vertical; ??-webkit-line-clamp:?2; ??overflow:?hidden; font-size:?17px; ??color:?#333; font-weight:?bold; ??line-height:?120%;}.list-tag?view.state{ ????display:?block; ????font-size:?11px; ????color:?#81aaf7; ????width:?50px; ????padding:?2px; ????border:?1px?solid?#93b9ff; ????border-radius:?2px; ????text-align:?center; ????margin-top:?10px; float:?left;}.list-tag?.join{ font-size:?13px; ??line-height:?120%; ??color:?#bbb; ??position:?absolute; ??display:?inline; ??margin:?10px?0?0?20px;}.list-tag?.list-num{ font-size:?16px; ??color:?#ff6666;}.list-info{ font-size:?13px; ??color:?#bbb; ??line-height:?110%; ??font-weight:?normal; margin-top:?40px;}
2.app.json
{ ??"pages":?[ ????"pages/index/index", ????"pages/setting/setting", ????"pages/login/login", ????"pages/please/please", ????"pages/Calendar/Calendar", ????"pages/discovery/discovery" ??], ??"window":?{ ????"backgroundTextStyle":?"light", ????"navigationBarBackgroundColor":?"#fff", ????"navigationBarTitleText":?"太行精靈", ????"navigationBarTextStyle":?"black" ??}, ??"tabBar":?{ ????"color":?"#a0a0a0", ????"selectedColor":?"#ec5c30", ????"backgroundColor":?"#f2f2f2", ????"borderStyle":?"white", ????"list":?[ ??????{ ????????"pagePath":?"pages/index/index", ????????"text":?"首頁", ????????"iconPath":?"img/shouye.png", ????????"selectedIconPath":?"img/shouye1.png" ??????}, ??????{ ????????"pagePath":?"pages/setting/setting", ????????"text":?"我的", ????????"iconPath":?"img/me.png", ????????"selectedIconPath":?"img/me1.png" ??????} ????]??}, ??"debug":?true, ??"sitemapLocation":?"sitemap.json"}
以上代碼僅供參考,可以參照以下文檔
鏈接:
微信小程序官方文檔
小程序框架
三、項目上線
微信公眾平臺,進入小程序進行注冊
注冊完成后會有AppID,將之前的測試號用新ID代替,再次打開微信開發(fā)者工具,編輯區(qū)上方會出現(xiàn)上傳按鈕
上傳成功后進入微信公眾平臺,會看到開發(fā)版本,提交審核,半小時左右,通知審核通過之后提交審核版本,10分鐘左右,就能看到自己上線的小程序。
【相關(guān)學(xué)習(xí)推薦:小程序開發(fā)教程】
以上是零基礎(chǔ)微信小程序開發(fā)及實例詳解的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

閑魚官方微信小程序悄然上線,在小程序中可以發(fā)布閑置與買家/賣家私信交流、查看個人資料及訂單、搜索物品等,有用好奇閑魚微信小程序叫什么,現(xiàn)在快來看一下。閑魚微信小程序叫什么答案:閑魚,閑置交易二手買賣估價回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個人資料及訂單、搜索指定物品等功能;2、在小程序的頁面中有首頁、附近、發(fā)閑置、消息、我的5項功能;3、想要使用的話必要要開通微信支付才可以購買;

實現(xiàn)微信小程序中的圖片濾鏡效果隨著社交媒體應(yīng)用的流行,人們越來越喜歡在照片中應(yīng)用濾鏡效果,以增強照片的藝術(shù)效果和吸引力。在微信小程序中也可以實現(xiàn)圖片濾鏡效果,為用戶提供更多有趣和創(chuàng)造性的照片編輯功能。本文將介紹如何在微信小程序中實現(xiàn)圖片濾鏡效果,并提供具體的代碼示例。首先,我們需要在微信小程序中使用canvas組件來加載和編輯圖片。canvas組件可以在頁面

實現(xiàn)微信小程序中的下拉菜單效果,需要具體代碼示例隨著移動互聯(lián)網(wǎng)的普及,微信小程序成為了互聯(lián)網(wǎng)開發(fā)的重要一環(huán),越來越多的人開始關(guān)注和使用微信小程序。微信小程序的開發(fā)相比傳統(tǒng)的APP開發(fā)更加簡便快捷,但也需要掌握一定的開發(fā)技巧。在微信小程序的開發(fā)中,下拉菜單是一個常見的UI組件,實現(xiàn)了更好的用戶操作體驗。本文將詳細介紹如何在微信小程序中實現(xiàn)下拉菜單效果,并提供具

閑魚官方微信小程序已經(jīng)悄然上線,它為用戶提供了一個便捷的平臺,讓你可以輕松地發(fā)布和交易閑置物品。在小程序中,你可以與買家或賣家進行私信交流,查看個人資料和訂單,以及搜索你想要的物品。那么閑魚在微信小程序中究竟叫什么呢,這篇教程攻略將為您詳細介紹,想要了解的用戶們快來跟著本文繼續(xù)閱讀吧!閑魚微信小程序叫什么答案:閑魚,閑置交易二手買賣估價回收。1、在小程序中可以發(fā)布閑置、與買家/賣家私信交流、查看個人資料及訂單、搜索指定物品等功能;2、在小程序的頁面中有首頁、附近、發(fā)閑置、消息、我的5項功能;3、

微信小程序?qū)崿F(xiàn)圖片上傳功能隨著移動互聯(lián)網(wǎng)的發(fā)展,微信小程序已經(jīng)成為了人們生活中不可或缺的一部分。微信小程序不僅提供了豐富的應(yīng)用場景,還支持開發(fā)者自定義功能,其中包括圖片上傳功能。本文將介紹如何在微信小程序中實現(xiàn)圖片上傳功能,并提供具體的代碼示例。一、前期準備工作在開始編寫代碼之前,我們需要先下載并安裝微信開發(fā)者工具,并注冊成為微信開發(fā)者。同時,還需要了解微信

使用微信小程序?qū)崿F(xiàn)輪播圖切換效果微信小程序是一種輕量級的應(yīng)用程序,具有簡單、高效的開發(fā)和使用特點。在微信小程序中,實現(xiàn)輪播圖切換效果是常見的需求。本文將介紹如何使用微信小程序?qū)崿F(xiàn)輪播圖切換效果,并給出具體的代碼示例。首先,在微信小程序的頁面文件中,添加一個輪播圖組件。例如,可以使用<swiper>標簽來實現(xiàn)輪播圖的切換效果。在該組件中,可以通過b

實現(xiàn)微信小程序中的圖片旋轉(zhuǎn)效果,需要具體代碼示例微信小程序是一種輕量級的應(yīng)用程序,為用戶提供了豐富的功能和良好的用戶體驗。在小程序中,開發(fā)者可以利用各種組件和API來實現(xiàn)各種效果。其中,圖片旋轉(zhuǎn)效果是一種常見的動畫效果,可以為小程序增添趣味性和視覺效果。在微信小程序中實現(xiàn)圖片旋轉(zhuǎn)效果,需要使用小程序提供的動畫API。下面是一個具體的代碼示例,展示了如何在小程

實現(xiàn)微信小程序中的滑動刪除功能,需要具體代碼示例隨著微信小程序的流行,開發(fā)者們在開發(fā)過程中經(jīng)常會遇到一些常見功能的實現(xiàn)問題。其中,滑動刪除功能是一個常見、常用的功能需求。本文將為大家詳細介紹如何在微信小程序中實現(xiàn)滑動刪除功能,并給出具體的代碼示例。一、需求分析在微信小程序中,滑動刪除功能的實現(xiàn)涉及到以下要點:列表展示:要顯示可滑動刪除的列表,每個列表項需要包
