99久久免费国产精品-天天爽夜夜爽夜夜爽-色噜噜久久综合伊人一本-国产无遮挡又黄又爽免费视频

首頁>> 開發(fā)技術(shù)知識>> 小程序技術(shù)>>微信小程序開發(fā)基礎(chǔ)知識與總結(jié)


微信小程序開發(fā)基礎(chǔ)知識與總結(jié)

微信小程序在無論在功能、文檔及相關(guān)支持方面,都是優(yōu)于前面幾種微信賬號類型,它提供了很多原生程序才有的接口,使得我們的小程序在很多方面突破H5頁面應(yīng)用的限制,更加接近原生程序的功能,因此微信小程序具有很大的前景想象力。它提供了自己的視圖層描述語言 WXML 和 WXSS,以及基于 JavaScript 的邏輯層框架,并在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),可以讓開發(fā)者可以方便的聚焦于數(shù)據(jù)與邏輯上。

1、小程序的目錄結(jié)構(gòu)

小程序的目錄結(jié)構(gòu)如下所示。

其中項目級別的的文件包括 app.js、app.json、app.wxss 這三個。其中.js后綴的是腳本文件,.json后綴的文件是配置文件,.wxss后綴的是樣式表文件。

頁面級別可以包含很多個頁面,如index,detail等頁面,每個頁面都包含.js,.json,.wxml,.wxss這些文件,其中.wxml為頁面視圖文件,是自定義標簽的HTML頁面。

app.js是小程序的腳本代碼。我們可以在這個文件中監(jiān)聽并處理小程序的生命周期函數(shù)、聲明全局變量,可以調(diào)用框架提供的豐富的 API。

app.json 是對整個小程序的全局配置。我們可以在這個文件中配置小程序是由哪些頁面組成,配置小程序的窗口背景色,配置導(dǎo)航條樣式,配置默認標題。

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

一個小程序主體部分由三個文件組成,必須放在項目的根目錄。

 

 微信小程序中的每一個頁面的【路徑+頁面名】都需要寫在 app.json 的 pages 中,且 pages 中的第一個頁面是小程序的首頁。

每一個小程序頁面是由同路徑下同名的四個不同后綴文件的組成,如:index.js、index.wxml、index.wxss、index.json。.js后綴的文件是腳本文件,.json后綴的文件是配置文件,.wxss后綴的是樣式表文件,.wxml后綴的文件是頁面結(jié)構(gòu)文件。

index.json 是頁面的配置文件:頁面的配置文件是非必要的。當(dāng)有頁面的配置文件時,配置項在該頁面會覆蓋 app.json 的 window 中相同的配置項。如果沒有指定的頁面配置文件,則在該頁面直接使用 app.json 中的默認配置。

 

邏輯層(App Service)

小程序開發(fā)框架的邏輯層是由JavaScript編寫。

邏輯層將數(shù)據(jù)進行處理后發(fā)送給視圖層,同時接受視圖層的事件反饋。 在 JavaScript 的基礎(chǔ)上,我們做了一些修改,以方便地開發(fā)小程序。

  • 增加 App 和 Page 方法,進行程序和頁面的注冊。
  • 增加 getApp 和 getCurrentPages 方法,分別用來獲取 App 實例和當(dāng)前頁面棧。
  • 提供豐富的 API,如微信用戶數(shù)據(jù),掃一掃,支付等微信特有能力。
  • 每個頁面有獨立的作用域,并提供模塊化能力。
  • 由于框架并非運行在瀏覽器中,所以 JavaScript 在 web 中一些能力都無法使用,如 document,window 等。
  • 開發(fā)者寫的所有代碼最終將會打包成一份 JavaScript,并在小程序啟動的時候運行,直到小程序銷毀。類似 ServiceWorker,所以邏輯層也稱之為 App Service。

視圖層

框架的視圖層由 WXML 與 WXSS 編寫,由組件來進行展示。

將邏輯層的數(shù)據(jù)反應(yīng)成視圖,同時將視圖層的事件發(fā)送給邏輯層。

WXML(WeiXin Markup language)用于描述頁面的結(jié)構(gòu)。

WXSS(WeiXin Style Sheet)用于描述頁面的樣式。

組件(Component)是視圖的基本組成單元。

 

基礎(chǔ)組件

框架為開發(fā)者提供了一系列基礎(chǔ)組件,開發(fā)者可以通過組合這些基礎(chǔ)組件進行快速開發(fā)。

什么是組件:

  • 組件是視圖層的基本組成單元。
  • 組件自帶一些功能與微信風(fēng)格的樣式。
  • 一個組件通常包括開始標簽結(jié)束標簽屬性用來修飾這個組件,內(nèi)容在兩個標簽之內(nèi)。

    <tagname property="value"> Content goes here ... </tagename> 

    注意:所有組件與屬性都是小寫,以連字符-連接

API

框架提供豐富的微信原生API,可以方便的調(diào)起微信提供的能力,如獲取用戶信息,本地存儲,支付功能等。

說明:

  • wx.on 開頭的 API 是監(jiān)聽某個事件發(fā)生的API接口,接受一個 CALLBACK 函數(shù)作為參數(shù)。當(dāng)該事件觸發(fā)時,會調(diào)用 CALLBACK 函數(shù)。
  • 如未特殊約定,其他 API 接口都接受一個OBJECT作為參數(shù)。
  • OBJECT中可以指定successfailcomplete來接收接口調(diào)用結(jié)果。
參數(shù)名 類型 必填 說明
success Function 接口調(diào)用成功的回調(diào)函數(shù)
fail Function 接口調(diào)用失敗的回調(diào)函數(shù)
complete Function 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

 

2、小程序接口功能列表

框架提供豐富的微信原生API,可以方便的調(diào)起微信提供的能力,如獲取用戶信息,本地存儲,支付功能等。

1)網(wǎng)絡(luò) API 列表:

wx.request 發(fā)起網(wǎng)絡(luò)請求
wx.uploadFile 上傳文件
wx.downloadFile 下載文件
wx.connectSocket 創(chuàng)建 WebSocket 連接
wx.onSocketOpen 監(jiān)聽 WebSocket 打開
wx.onSocketError 監(jiān)聽 WebSocket 錯誤
wx.sendSocketMessage 發(fā)送 WebSocket 消息
wx.onSocketMessage 接受 WebSocket 消息
wx.closeSocket 關(guān)閉 WebSocket 連接
wx.onSocketClose 監(jiān)聽 WebSocket 關(guān)閉

 

2)媒體 API 列表:

wx.chooseImage 從相冊選擇圖片,或者拍照
wx.previewImage 預(yù)覽圖片
wx.startRecord 開始錄音
wx.stopRecord 結(jié)束錄音
wx.playVoice 播放語音
wx.pauseVoice 暫停播放語音
wx.stopVoice 結(jié)束播放語音
wx.getBackgroundAudioPlayerState 獲取音樂播放狀態(tài)
wx.playBackgroundAudio 播放音樂
wx.pauseBackgroundAudio 暫停播放音樂
wx.seekBackgroundAudio 控制音樂播放進度
wx.stopBackgroundAudio 停止播放音樂
wx.onBackgroundAudioPlay 監(jiān)聽音樂開始播放
wx.onBackgroundAudioPause 監(jiān)聽音樂暫停
wx.onBackgroundAudioStop 監(jiān)聽音樂結(jié)束
wx.chooseVideo 從相冊選擇視頻,或者拍攝

 

3)文件 API 列表:

wx.saveFile 保存文件
wx.getSavedFileList 獲取已保存的文件列表
wx.getSavedFileInfo 獲取已保存的文件信息
wx.removeSavedFile 刪除已保存的文件信息
wx.openDocument 打開文件

 

4)數(shù)據(jù) API 列表:

wx.getStorage 獲取本地數(shù)據(jù)緩存
wx.getStorageSync 獲取本地數(shù)據(jù)緩存
wx.setStorage 設(shè)置本地數(shù)據(jù)緩存
wx.setStorageSync 設(shè)置本地數(shù)據(jù)緩存
wx.getStorageInfo 獲取本地緩存的相關(guān)信息
wx.getStorageInfoSync 獲取本地緩存的相關(guān)信息
wx.removeStorage 刪除本地緩存內(nèi)容
wx.removeStorageSync 刪除本地緩存內(nèi)容
wx.clearStorage 清理本地數(shù)據(jù)緩存
wx.clearStorageSync 清理本地數(shù)據(jù)緩存

 

5)位置 API 列表:

wx.getLocation 獲取當(dāng)前位置
wx.chooseLocation 打開地圖選擇位置
wx.openLocation 打開內(nèi)置地圖
wx.createMapContext 地圖組件控制

 

6)設(shè)備 API 列表:

wx.getNetworkType 獲取網(wǎng)絡(luò)類型
wx.onNetworkStatusChange 監(jiān)聽網(wǎng)絡(luò)狀態(tài)變化
wx.getSystemInfo 獲取系統(tǒng)信息
wx.getSystemInfoSync 獲取系統(tǒng)信息
wx.onAccelerometerChange 監(jiān)聽加速度數(shù)據(jù)
wx.startAccelerometer 開始監(jiān)聽加速度數(shù)據(jù)
wx.stopAccelerometer 停止監(jiān)聽加速度數(shù)據(jù)
wx.onCompassChange 監(jiān)聽羅盤數(shù)據(jù)
wx.startCompass 開始監(jiān)聽羅盤數(shù)據(jù)
wx.stopCompass 停止監(jiān)聽羅盤數(shù)據(jù)
wx.setClipboardData 設(shè)置剪貼板內(nèi)容
wx.getClipboardData 獲取剪貼板內(nèi)容
wx.makePhoneCall 撥打電話
wx.scanCode 掃碼

 

7)界面 API 列表:

wx.showToast 顯示提示框
wx.showLoading 顯示加載提示框
wx.hideToast 隱藏提示框
wx.hideLoading 隱藏提示框
wx.showModal 顯示模態(tài)彈窗
wx.showActionSheet 顯示菜單列表
wx.setNavigationBarTitle 設(shè)置當(dāng)前頁面標題
wx.showNavigationBarLoading 顯示導(dǎo)航條加載動畫
wx.hideNavigationBarLoading 隱藏導(dǎo)航條加載動畫
wx.navigateTo 新窗口打開頁面
wx.redirectTo 原窗口打開頁面
wx.switchTab 切換到 tabbar 頁面
wx.navigateBack 退回上一個頁面
wx.createAnimation 動畫
wx.createContext 創(chuàng)建繪圖上下文
wx.drawCanvas 繪圖
wx.stopPullDownRefresh 停止下拉刷新動畫

 

8)WXML節(jié)點信息 API 列表:

wx.createSelectorQuery 創(chuàng)建查詢請求
selectorQuery.select 根據(jù)選擇器選擇單個節(jié)點
selectorQuery.selectAll 根據(jù)選擇器選擇全部節(jié)點
selectorQuery.selectViewport 選擇顯示區(qū)域
nodesRef.boundingClientRect 獲取布局位置和尺寸
nodesRef.scrollOffset 獲取滾動位置
nodesRef.fields 獲取任意字段
selectorQuery.exec 執(zhí)行查詢請求

 

9)開放接口:

wx.login 登錄
wx.getUserInfo 獲取用戶信息
wx.chooseAddress 獲取用戶收貨地址
wx.requestPayment 發(fā)起微信支付
wx.addCard 添加卡券
wx.openCard 打開卡券

 

3、相關(guān)處理代碼

1)注冊程序處理代碼

復(fù)制代碼
App({
  onLaunch: function(options) { // Do something initial when launch.  },
  onShow: function(options) { // Do something when show.  },
  onHide: function() { // Do something when hide.  },
  onError: function(msg) {
    console.log(msg)
  },
  globalData: ''I am global data'' })
復(fù)制代碼

2)注冊頁面處理代碼

復(fù)制代碼
//index.js Page({
  data: {
    text: "This is page data." },
  onLoad: function(options) { // Do some initialize when page load.  },
  onReady: function() { // Do something when page ready.  },
  onShow: function() { // Do something when page show.  },
  onHide: function() { // Do something when page hide.  },
  onUnload: function() { // Do something when page close.  },
  onPullDownRefresh: function() { // Do something when pull down.  },
  onReachBottom: function() { // Do something when page reach bottom.  },
  onShareAppMessage: function () { // return custom share data when user share.  },
  onPageScroll: function() { // Do something when page scroll  }, // Event handler. viewTap: function() { this.setData({
      text: ''Set some data for updating view.'' })
  },
  customData: {
    hi: ''MINA'' }
})
復(fù)制代碼

3)JS函數(shù)模塊化

復(fù)制代碼
// common.js function sayHello(name) {
  console.log(`Hello ${name} !`)
} function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}

module.exports.sayHello = sayHello
exports.sayGoodbye = sayGoodbye
復(fù)制代碼

在需要使用這些模塊的文件中,使用 require(path) 將公共代碼引入

復(fù)制代碼
var common = require(''common.js'')
Page({
  helloMINA: function() {
    common.sayHello(''MINA'')
  },
  goodbyeMINA: function() {
    common.sayGoodbye(''MINA'')
  }
})
復(fù)制代碼

 

4)網(wǎng)絡(luò)數(shù)據(jù)請求處理代碼

復(fù)制代碼
    //點擊搜索按鈕調(diào)用的函數(shù)  search:function(e){ var that = this; //數(shù)據(jù)加載完成之前,顯示加載中提示框  wx.showToast({
          title: ''加載中。。。'',
          icon: ''loading'',
          duration: 10000 }); //發(fā)起請求,注意 wx.request發(fā)起的是 HTTPS 請求  wx.request({
          url: url + "?city=" + that.data.inputValue + "&key=" + apiKey,
          data: {},
          header: { ''content-type'': ''application/json'' },
          success: function(res) { var data = res.data; //將數(shù)據(jù)從邏輯層發(fā)送到視圖層,同時改變對應(yīng)的 this.data 的值  that.setData({
              restation: data.result,
              condition: false }); //數(shù)據(jù)加載成功后隱藏加載中彈框  wx.hideToast();
          }
        })

      }



分享聯(lián)系我們

掃二維碼與項目經(jīng)理溝通 我們在微信上24小時期待你的聲音

感謝您的關(guān)注分享“微信小程序開發(fā)基礎(chǔ)知識與總結(jié)”
煙寒網(wǎng)絡(luò)真誠為您服務(wù) ,點擊客服直接咨詢下單.

我們服務(wù)

南寧網(wǎng)絡(luò)公司南寧網(wǎng)站建設(shè)

網(wǎng)站建設(shè)

高端網(wǎng)站建設(shè)服務(wù)商、相信品牌力量、相信知名企業(yè);制作后收費13014982176!

南寧微信小程序/微信公眾號

微信小程序/微信公眾號

微信小程序 背靠10億流量,不論用戶需求是什么,都能被開發(fā)使用 一點創(chuàng)意,就能在“社交圈”中脫穎而出。

南寧網(wǎng)站優(yōu)化/SEO

網(wǎng)站優(yōu)化/SEO

讓您的網(wǎng)站更靠近排名位置,讓客戶更容易找到您,seo優(yōu)化是一個漫長過程,整個網(wǎng)站營銷花最少的錢起最大的作用。

我們服務(wù)客戶


企業(yè)形象網(wǎng)站、個人博客、政府門戶網(wǎng)站、新聞傳媒網(wǎng)站最省錢、省時、省備案 建站快、效率高更多服務(wù)
廣西華崧集團網(wǎng)站品牌設(shè)計

廣西華崧集團網(wǎng)站品牌設(shè)計

廣西華崧林業(yè)發(fā)展集團(以下簡稱華崧集團)組建于2017年8月,集團總部位于廣西壯...

廣西大和平房地產(chǎn)有限公司

廣西大和平房地產(chǎn)有限公司

廣西鴻生源環(huán)保科技有限公司

廣西鴻生源環(huán)保科技有限公司

主站蜘蛛池模板: 精品人妻潮喷久久久又裸又黄| 国产精品美女www爽爽爽视频 | 天天躁狠狠躁狠狠躁夜夜躁| 四虎成人精品永久在线视频| 国产成人精品午夜二三区波多野| 无码中文人妻在线一区| 日本老熟妇xxxxx| 国产午夜福利100集发布| 奇米影视色777四色在线首页 | 天天做天天爱天天爽综合网| 猫咪av成人永久网站在线观看| 又紧又大又爽精品一区二区| 国产精品美女久久久网站动漫| 中文日韩亚洲欧美制服| 深夜爽爽动态图无遮无挡| 性人久久网av| 欧美日韩精品久久久久| 边添小泬边狠狠躁视频| 亚洲老妈激情一区二区三区| 亚洲 卡通 欧美 制服 中文| 7194中文乱码一二三四芒果| 国产乱人伦偷精品视频| 国产卡一卡二卡三乱码手机| 无码免费午夜福利片在线| 人妻人人做人做人人爱| 无码人妻丰满熟妇区免费| 欧美熟妇xxxxx欧美老妇不卡 | heyzo无码综合国产精品| 区二区三区玖玖玖| 日韩精品中文字幕无码一区| 欧美性群另类交| 丰满少妇被粗大猛烈进人高清| 在线观看免费人成视频色9 | 中文字幕人成乱码熟女| 国内最真实的xxxx人伦| 人人摸人人操| 亚洲日本一区二区一本一道| 日本午夜精品一区二区三区电影| 亚洲精品乱码久久久久久按摩 | 久久av无码αv高潮αv喷吹| 色综合天天综合网国产成人网|