天天看點

詳解微信小程式開發(項目從零開始)

一、序

  微信小程式,估計大家都不陌生,現在應用場景特别多。今天就系統的介紹一下小程式開發。注意,這裡隻從項目代碼上做解析,不涉及小程式如何申請、打包、釋出的東西。(這些跟着微信官方文檔的流程走就好)。好了廢話不多說,看目錄。

  注: 小程式是一套特殊的東西,融合了原生和web端。他是一個不完整的浏覽器對象,是以很多DOM 、 BOM 的東西無法使用,但是他又通過微信APP實作了多線程。

二、 目錄

  1、如何建立一個微信小程式

  2、準備工作(讓編譯器支援小程式開發,我用的webstrom,hbuilderX也不錯)

  3、基礎檔案目錄詳解

  4、建立常見的項目級别目錄

  5、基礎文法詳解

  6、實作頁面跳轉

  7、wx.request 的封裝

  8、使用 npm (引入 weui、moment等插件)

  9、封裝微信小程式可複用元件

  10、總結

三、如何建立小程式

  很簡單,首先下載下傳微信開發者工具,下載下傳穩定版本的就好。 下載下傳  然後,建立小程式,可以參考下述圖檔:

    

詳解微信小程式開發(項目從零開始)
詳解微信小程式開發(項目從零開始)
詳解微信小程式開發(項目從零開始)

  注意正式的小程式需要審批,拿到正式的APPID,我們測試的或者暫時沒有的可點那個測試的appid,小程式模闆選擇預設就好。按照這樣的流程走完,我們就建立完一個小程式了。

四、webstrom支援小程式開發

  建立完小程式之後,我們先不着急開發。工欲善其事必先利其器,微信開發者工具有點卡,而且功能少,開發效率很低。是以我們還是改造自己的編譯器,這裡隻介紹2種方法。一是 hbuilderX,他有支援小程式的子產品,很小巧的一款編譯器; 二是 webstorm,我用的他,在這介紹一下配置的方法,其他的大家自行google吧。

  1、支援wxml和wxss的檔案類型,有文法高亮。 打開webstorm編譯器,依次點選    檔案 -- 設定 -- 編輯器 -- 檔案類型 , 找到 html檔案,添加  *.wxml;  找到Cascading style Sheet ,添加 *.wxss。就OK了

  2、支援小程式代碼提醒。 下載下傳   這個檔案,然後,把他放到一個顯眼的地方; 然後, webstorm  點選  檔案 -- 導入設定 ,找到這個下載下傳的檔案,點選确定即可。

  以上就是webstorm支援小程式文法的操作。

五、基礎檔案目錄詳解

  

詳解微信小程式開發(項目從零開始)

  然後解釋一下小程式的目錄結構。

    project.config.json: 小程式的配置檔案,包含項目打包配置、上傳代碼自動壓縮等等,是一些開發、打包之類的配置。

    app.json: 目前項目的配置檔案。包括項目的頁面引入、導覽列顔色、導覽列标題 等等,是項目具體到代碼開發上的配置。介紹幾個配置:

        pages: 包含的頁面。每次新增頁面都得在這裡引入,否則新頁面的json配置等無法生效。 注意pages中頁面先寫的先渲染,是以數組第一條也就是我們的首頁。

        window: 配置所有頁面導覽列字型、顔色、背景色等

    app.js:   小程式入口檔案。生成小程式執行個體,App({}), 通常在這擷取使用者資訊、授權資訊、定義全局變量等。

    app.wxss: 小程式全局 style 檔案。對整個項目頁面生效。通正常定項目的 字型、基礎顔色,定義一些公共樣式。

    utils:  工具函數目錄。通常用來放一些公共的js方法。比如封裝的request請求,一些别的處理資料什麼的方法。

    pages: 小程式的頁面目錄。所有的小程式頁面,都寫在這裡面。

六、完善項目目錄

  上邊大緻解釋了一下小程式的基礎檔案,現在按照常見的規範完善一下項目目錄,這裡面包含一些個人見解,有需要的參考即可。先看一下結果:

詳解微信小程式開發(項目從零開始)

  現在解釋一下這些目錄:

    components: 我們封裝的小程式可複用元件。

    constants: 一些項目中的常亮。

    image: 用到的圖檔。

    services: 用到的所有接口目錄

  大緻就建立了這幾個,如果有别的需求,根據自己的情況增加。

七、基礎文法詳解

  現在大緻解釋一下小程式的文法。首先, 建立新頁面,預設都建立 *.wxml   *.wxss  *.js   *.json  和我們平時寫的代碼差不多,都是html js css,多了個json配置檔案

    *.json:常用的屬性有2大塊,navigationBarTitleText  相關的設定頂部标題的, usingComponents 引用的元件

    *.js: getApp() 擷取小程式執行個體,拿全局變量等; Page({}) 建立頁面; data 目前頁面的變量;onLoad 生命周期,頁面加載完畢。

    *.wxml:注意,小程式支援的标簽很少,像 span 是支援的,div不支援,一般用view代替塊級,span、text 代替行級。

    *.wxss:大部分css選擇器不支援,支援的好像才5個,想支援less等得自己配置

八、實作頁面跳轉

  和通常的web開發一樣,小程式頁面跳轉頁分2中,wxml中的vavigator标簽,以及js的navigator相關的api。路由跳轉的方法有好幾個,這裡不一一贅述了,常用的直接跳轉

  onLoad: function (options) {

    console.log(options)

  },

九、wx.request 的封裝

  在utils中建立request.js,簡單封裝了一下,一些資料要全局配置的都引進來,然後做了些錯誤的統一處理,沒什麼難度,不過要特别注意一下cookie的攜帶。具體代碼如下: 

  然後我們使用的時候直接使用封裝好的request方法,這樣所有的api就封裝成一個個函數。我們在頁面中直接import引入調用即可。

十、使用 npm (引入 weui、moment等插件)

  因為小程式使用的是不完整的浏覽器對象,是以很多js包都是不好使的,比如jquery之類的。是以npm基本是廢了,能用的依賴包很少,具體哪些能用得自己發掘了。這裡還是要介紹一下小程式如何使用npm,畢竟有些包還是要用的。

  1、打開 微信開發者工具 -- 點選 詳情 -- 勾選 使用npm子產品

  2、打開指令行,進入項目的根目錄下, npm init 初始化npm

  3、npm i 。。。安裝你需要的依賴

  4、打開 微信開發者工具 -- 點選 工具 -- 點選 建構npm。 此時小程式會将 node_modules 檔案編譯打包,生成新目錄 miniprogram_npm ,

  5、在需要用到的頁面的js檔案中,const moment= require('moment') 引入,直接使用即可

  6、最後記得忽略檔案。建立 .gitignore 檔案,node_modules 、 package_lock.json 等檔案不需要上傳,最好隻保留小程式的npm建構包,用什麼依賴也是的那個下載下傳。這個到不是必須的

  ps: 特殊注意一下weui的引入,這個ui庫是純css的,沒有js檔案,是以他沒法用npm引入,而是直接下載下傳檔案,我直接丢到根目錄下,然後在 app.wxss 檔案的開頭引入  

 

十一、封裝微信小程式可複用元件

  現在篇幅有點太長了,這個另寫一篇,有需要的可以去看。

十二、總結

  以上就是我開發小程式的一些經驗和總結,希望能幫到你。另外,整套程式的骨架(業務代碼删掉了)我會上傳到github,下載下傳 有需要的可以去下載下傳,記得點個贊,哈哈。

  最後,我會另寫一篇部落格,寫一下 如何封裝小程式 元件,并附上 我開發小程式遇到的坑,以及對應的解決方法。