小程序開發(fā)之路入門(基礎篇)

一担钮、 準備工作

1橱赠、 注冊一個微信小程序

https://mp.weixin.qq.com/

注冊頁面.png

2、 微信小程序的開發(fā)工具下載地址

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

3箫津、小程序APi文檔地址

https://developers.weixin.qq.com/miniprogram/dev/framework/

準備一個微信號

二狭姨、小程序正式開始

2.1、創(chuàng)建一個小程序項目

在微信小程序管理后臺拿到對應appid苏遥、創(chuàng)建項目


創(chuàng)建小程序頁面.jpg

2.2饼拍、項目代碼結構

1、app.js是小程序的腳本代碼暖眼。我們可以在這個文件中監(jiān)聽并處理小程序的生命周期函數(shù)惕耕、聲明全局變量纺裁。調用框架提供的豐富的 API诫肠,如本例的同步存儲及同步讀取本地數(shù)據(jù)。

2欺缘、app.json 是對整個小程序的全局配置栋豫。我們可以在這個文件中配置小程序是由哪些頁面組成,配置小程序的窗口背景色谚殊,配置導航條樣式丧鸯,配置默認標題。注意該文件不可添加任何注釋嫩絮。

3丛肢、app.wxss 是整個小程序的公共樣式表淑趾。我們可以在頁面組件的 class 屬性上直接使用 app.wxss 中聲明的樣式規(guī)則奇瘦。

我在實例程序的代碼中還有2個文件夾,一個是pages,一個是utils,其中utils是放通用工具類方法的一個文件夾喂饥,pages是存放所有頁面的文件夾置尔。我們著重講一下這個pages.      在這個示例中杠步,我們有兩個頁面,index 頁面和 logs 頁面榜轿,即歡迎頁和小程序啟動日志的展示頁幽歼,他們都在 pages 目錄下。微信小程序中的每一個頁面的【路徑+頁面名】都需要寫在 app.json 的 pages 中谬盐,且 pages 中的第一個頁面是小程序的首頁甸私。

每一個小程序頁面是由同路徑下同名的四個不同后綴文件組成的,如:index.js飞傀、index.wxml皇型、index.wxss泣刹、index.json。.js后綴的文件是腳本文件犀被,.json后綴的文件是配置文件椅您,.wxss后綴的是樣式表文件,.wxml后綴的文件是頁面結構文件寡键。


項目代碼結構.png

2.3掀泳、JS 基本頁面配置

Page({
  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
  },
  /**
   * 生命周期函數(shù)--監(jiān)聽頁面加載
   */
  onLoad: function (options) {
  },
  /**
   * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
   */
  onReady: function () {
  },
  /**
   * 生命周期函數(shù)--監(jiān)聽頁面顯示
   */
  onShow: function () {
  },
  /**
   * 生命周期函數(shù)--監(jiān)聽頁面隱藏
   */
  onHide: function () {
  },
  /**
   * 生命周期函數(shù)--監(jiān)聽頁面卸載
   */
  onUnload: function () {
  },
  /**
   * 頁面相關事件處理函數(shù)--監(jiān)聽用戶下拉動作
   */
  onPullDownRefresh: function () {
     wx.stopPullDownRefresh()//停止當前頁面下拉刷新
  },
  /**
   * 頁面上拉觸底事件的處理函數(shù)
   */
  onReachBottom: function () {
  },
  /**
   * 用戶點擊右上角分享
   */
  onShareAppMessage: function () {
  },
})

2.3、認識基本json頁面配置+上拉刷新西轩、下拉加載

{
  "navigationBarBackgroundColor": "#f00",//修改頂部導航欄顏色
  "navigationBarTitleText": "demo頁面",//修改頂部導航欄文字
  "backgroundTextStyle":"dark",//下拉 loading 的樣式员舵,僅支持 dark / light
  "enablePullDownRefresh": true,//是否開啟當前頁面下拉刷新。
  "onReachBottomDistance": 50,//頁面上拉觸底事件觸發(fā)時距頁面底部距離藕畔,單位為px马僻。
  "usingComponents": {}//頁面自定義組件配置
}

2.4、認識wxml

<!-- blcok 它僅僅是一個包裝元素注服,不會在頁面中做任何渲染韭邓,只接受控制屬性。 -->
<block wx:if="isBlock">
  <view>{{isBlock}}</view>
</block>
<block wx:else>
  <view>{{isBlock}}</view>
</block>
<view></view>//塊元素
<text></text>//行內元素
<image src="圖片路徑"></image>//有默認樣式
<rich-text nodes="{{nodes}}"></rich-text>//富文本使用div span 等
Page({
    data:{
        isBlock:true,
        nodes: [{
      name: 'div',
      attrs: {
        class: 'div_class',
      },
      children: [{
        type: 'text',
        text: 'Hello&nbsp;VIPKID的小伙伴!'
      }]
    }]
    }
})

2.6溶弟、如何使用webView

承載網(wǎng)頁的容器女淑。會自動鋪滿整個小程序頁面,個人類型的小程序暫不支持使用

  <web-view src="webview 指向網(wǎng)頁的鏈接辜御⊙寄悖可打開關聯(lián)的公眾號的文章,其它網(wǎng)頁需登錄小程序管理后臺配置業(yè)務域名"></web-view>

2.7擒权、小程序運行機制 (冷啟動袱巨、熱啟動、銷毀時機)

冷啟動:如果用戶首次打開碳抄,或小程序銷毀后被用戶再次打開愉老,此時小程序需要重新加載啟動,即冷啟動纳鼎。

熱啟動:如果用戶已經(jīng)打開過某小程序俺夕,然后在一定時間內再次打開該小程序,此時小程序并未被銷毀贱鄙,只是從后臺狀態(tài)進入前臺狀態(tài)劝贸,這個過程就是熱啟動。

小程序銷毀

需要注意的是:只有當小程序進入后臺一定時間逗宁,或者系統(tǒng)資源占用過高映九,才會被真正的銷毀。

當小程序進入后臺瞎颗,客戶端會維持一段時間的運行狀態(tài)件甥,超過一定時間后(目前是5分鐘)小程序會被微信主動銷毀捌议。

當小程序占用系統(tǒng)資源過高,可能會被系統(tǒng)銷毀或被微信客戶端主動回收引有。

前臺/后臺狀態(tài)

當用戶點擊右上角膠囊按鈕關閉小程序瓣颅,或者按了設備Home鍵離開微信時,小程序并沒有直接銷毀譬正,而是進入了后臺狀態(tài)宫补;當用戶再次進入微信或再次打開小程序,小程序又會從后臺進入前臺曾我。

2.8粉怕、小程序路由

wx.navigateTo

保留當前頁面,跳轉到應用內的某個頁面抒巢。但是不能跳到 tabbar 頁面贫贝。使用 wx.navigateBack 可以返回到原頁面。小程序中頁面棧最多十層蛉谜。

wx.redirectTo

關閉當前頁面稚晚,跳轉到應用內的某個頁面。但是不允許跳轉到 tabbar 頁面悦陋。

wx.reLaunch

關閉所有頁面蜈彼,打開到應用內的某個頁面筑辨。

wx.switchTab

跳轉到 tabBar 頁面俺驶,并關閉其他所有非 tabBar 頁面

wx.navigateBack

關閉當前頁面,返回上一頁面或多級頁面棍辕∧合郑可通過 getCurrentPages 獲取當前的頁面棧,決定需要返回幾層楚昭。

使用方法

//wxml里標簽跳轉
<navigator url="/pages/webView/webView?xxx=1" open-type="navigate">navigate</navigator>
<navigator url="/pages/webView/webView?xxx=1" open-type="redirect">redirect</navigator>
<navigator url="/pages/webView/webView?xxx=1" open-type="switchTab">switchTab</navigator>
<navigator url="/pages/webView/webView?xxx=1" open-type="reLaunch">reLaunch</navigator>
<navigator url="/pages/webView/webView?xxx=1" open-type="navigateBack">navigateBack</navigator>

//js 跳轉

wx.redirectTo,wx.reLaunch,wx.switchTab,wx.navigateTo({
   url:'/pages/webView/webView?xxx=1'//需要跳轉的應用內非 tabBar 的頁面的路徑 (代碼包路徑), 路徑后可以帶參數(shù)栖袋。參數(shù)與路徑之間使用 ? 分隔,參數(shù)鍵與參數(shù)值用 = 相連抚太,不同參數(shù)用 & 分隔塘幅;如 'path?key=value&key2=value2'(需要跳轉的 tabBar 頁面的路徑 (代碼包路徑)(需在 app.json 的 tabBar 字段定義的頁面),路徑后不能帶參數(shù)尿贫。)
  },
  success: function(res) {
  },
  fail: function(res) {
  },
    complete:function(res) {
  },
 })

wx.navigateBack({
  delta: 1// 返回的頁面數(shù)电媳,如果 delta 大于現(xiàn)有頁面數(shù),則返回到首頁
})

2.9庆亡、如何發(fā)布小程序(查看開發(fā)版匾乓、體驗版本)小程序更新機制

微信查找小程序開發(fā)助手、里面會有關聯(lián)你所有小程序


查找小程序開發(fā)助手.jpg

找到對應的小程序查看開發(fā)版本又谋、體驗版本拼缝、線上版本娱局。有不同的入口

小程序查看版本.jpg

找到小程序公眾平臺后臺管理、版本管理進行修改開發(fā)版本咧七、體驗版衰齐、審核版本、發(fā)布版本


版本發(fā)布.png

小程序冷啟動時继阻,如果發(fā)現(xiàn)有新版本娇斩,將會異步下載新版本的代碼包,并同時用客戶端本地的包進行啟動穴翩,即新版本的小程序需要等下一次冷啟動才會應用上犬第。

const updateManager = wx.getUpdateManager()

updateManager.onCheckForUpdate(function (res) {
 // 請求完新版本信息的回調
 console.log(res.hasUpdate)
})

updateManager.onUpdateReady(function () {
 wx.showModal({
   title: '更新提示',
   content: '新版本已經(jīng)準備好,是否重啟應用芒帕?',
   success(res) {
     if (res.confirm) {
       // 新的版本已經(jīng)下載好歉嗓,調用 applyUpdate 應用新版本并重啟
       updateManager.applyUpdate()
     }
   }
 })
})

updateManager.onUpdateFailed(function () {
 // 新版本下載失敗
})

三、彩蛋(福利 用vue背蟆、react開發(fā)小程序)

vue也能開發(fā) 多端開發(fā)使用小程序(微信鉴分、支付寶、頭條带膀、抖音志珍、h5)框架

kbone: https://github.com/Tencent/kbone

mpvue: http://mpvue.com/#_2

uniapp: https://uniapp.dcloud.io/

taro: https://taro.aotu.io/

wepy: https://wepyjs.github.io/wepy-docs/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市垛叨,隨后出現(xiàn)的幾起案子伦糯,更是在濱河造成了極大的恐慌,老刑警劉巖嗽元,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敛纲,死亡現(xiàn)場離奇詭異,居然都是意外死亡剂癌,警方通過查閱死者的電腦和手機淤翔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佩谷,“玉大人旁壮,你說我怎么就攤上這事⌒程矗” “怎么了抡谐?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稚补。 經(jīng)常有香客問我童叠,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任厦坛,我火速辦了婚禮五垮,結果婚禮上,老公的妹妹穿的比我還像新娘杜秸。我一直安慰自己放仗,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布撬碟。 她就那樣靜靜地躺著诞挨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呢蛤。 梳的紋絲不亂的頭發(fā)上惶傻,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音其障,去河邊找鬼银室。 笑死,一個胖子當著我的面吹牛励翼,可吹牛的內容都是我干的蜈敢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼汽抚,長吁一口氣:“原來是場噩夢啊……” “哼抓狭!你這毒婦竟也來了?” 一聲冷哼從身側響起造烁,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤否过,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后膨蛮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叠纹,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年敞葛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片与涡。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡惹谐,死狀恐怖,靈堂內的尸體忽然破棺而出驼卖,到底是詐尸還是另有隱情氨肌,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布酌畜,位于F島的核電站怎囚,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜恳守,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一考婴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧催烘,春花似錦沥阱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舰始,卻和暖如春崇棠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丸卷。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工易茬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人及老。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓抽莱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親骄恶。 傳聞我的和親對象是個殘疾皇子食铐,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容