創業選擇之微信小程序開發

微信小程序是17年出來的,現在也越來越多的創業型公司選擇了做一套微信小程序。微信小程序開發簡單,而且用戶使用小程序也不需要再去下載一個app(用官方的解釋就是:用完即走)。京東,美團,滴滴等很多大公司也有了相應的小程序。

一、 如何接觸到微信小程序

公司給了一套之前包給外包公司做的一套小程序,流程走不通,邏輯錯誤,於是開始了小程序之路。。。不過這段時間相對也確實挺累,除了前端方面的功能編寫外,也在檢查後端同事的代碼。除了小程序還有公衆號模版消息開發的研究。

二、 小程序學習文檔

新手如何去開發一套微信小程序呢,其實微信小程序我也是第一次做,走過很多坑,下面是2個開發微信小程序學習的地方,建議先把小程序官方文檔過一遍,有問題去小程序社區提問。

小程序官方文檔
小程序社區

三、 簡單說一下常見的坑

1. 關於微信小程序tabbar:

像下發這種tabbar在微信小程序的app.json裏的tabbar的屬性是無法完成的,那我們怎麼做呢我們可以封裝一個組件,在頁面裏面調用就可以了。當然不僅僅是tabbar,小程序的頭部導航欄也如果需要更改其他樣式,也是需要重新封裝一次。


2. 關於小程序的scroll-view:

說實話這個組件剛剛使用的時候確實感覺很不錯,我使用它進行了列表頁面的滑動編輯和刪除,不過當我在線下的時候,發現安卓手機可以使用下面的代碼,發現安卓手機可以隱藏橫向滾動條,但是在ios上就會出現醜陋的滾動條。於是又通過bindtouchstart,bindtouchmove與bindtouchend封裝了一次關於列表滾動的組件。

::-webkit-scrollbar {
    width: 0; 
    height: 0;
    color: transparent;
}

3. 關於onShow生命週期:

在2個頁面共用相同數據,在b頁面操作了以後,返回a頁面,官方推薦的做法是將需要更新的數據放在onShow裏面,但是個人覺得這樣操作是沒有必要的,並且也加大了服務器的壓力,個人覺得在b頁面操作了數據以後,服務器是已經接收到了這個操作了,沒有必要在a頁面在告訴服務器一次,我們只需要改變視圖層的數據就可以了,我的做法是在b頁面內將數據保存在storage內,這樣b操作了以後,我們在onShow裏面更新storage裏面的數據就可以了。

4. 關於js操作style屬性的問題:

說實話,這個是真的坑,在以往js操作css的時候我們直接通過獲取元素style進行設置就可以了,而小程序不是這樣,小程序不能操作元素的style,於是想到一個解決辦法是通過動態綁定的形式綁定元素style,然後在js內更改data內相應數據以此改變元素的style。這個是真的很不爽,如果修改得東西過多是真的讓代碼變得很難看。

5. 關於開發者工具——增強編譯:

在5.8日沒有增強編譯之前小程序工具是不支持增強編譯的,當然也沒有對async和await的解析,這樣在我寫回調的時候也很痛苦,也是自己封裝了一個組件,不過這個增強編譯當然也是非常想要的,不過更新之後小程序工具出現了很多問題,當然我當時也是其中一個,比如下面的鏈接。

小程序之~增強編譯

6. 關於小程序的頁面跳轉:

需要區分跳轉至pages頁面,還是tabbar頁面,還有就是跳轉以後是否支持返回。

7. 關於使用git多人協作時:

當使用版本管理工具時,需要把這個project.config.json文件給忽略掉,否則拉下來的代碼無法在小程序模擬器顯示。

8. 關於轉發功能:

小程序轉發的接口有以下幾種:

小程序轉發

根據業務的需要選擇上面的api就好了,當然我們做的是一個轉發後數據部分數據隱藏的功能,我選擇的是onShareAppMessage()這個函數,下面是簡單說明:

/**
 * 用戶點擊右上角分享
 */
  onShareAppMessage: function (res) {
    return {
      title: this.data.user,
      path: `pages/bank/user?uid=${this.data.uid},${this.data.id},${this.data.name},${this.data.bank}`,
      success: (res) => {
        console.log('success', res)
      },
      fail: (res) => {
        console.log('fail', res)
        // 轉發失敗
      }
    }
  },
9. 關於虛擬賬號撥號功能:

虛擬賬號這個功能我是第一次接觸,剛開始查看接口返回值不太穩定,有時候能返回虛擬電話號碼,有的時候不返回電話號碼,於是和老闆說是虛擬接口不穩定的原因導致的,但是老闆說這虛擬號碼是在阿里買的,這就尷尬了,心想阿里的也不一定是最好的吧。但是還是檢查了一遍後臺同事的代碼,發現邏輯和調用上面都沒有問題,於是。。。諮詢了阿里的客服,發了工單,最後不是接口不穩定的原因,也不是後臺代碼的原因,而是虛擬電話號碼不足需要再多買一點。。。

10. 關於http和https:

微信小程序的接口官方有說明是需要使用https的,不然調用出現錯誤,當然本地沒事

四、關於taro

最近正在選擇一款框架進行項目的重構,正好老闆也需要一套代碼多端運行即有微信小程序又有一個app,在美團的mpvue、滴滴卡密龍、和京東的taro之間,當然也看過flutter,在框架方面我選擇了taro,因爲他是一個類react的風格。在app方面我選擇了H5,爲什麼選擇了H5而不是React Native做app,因爲reactnative不是很友好不是工作需要千萬別碰~~

五、 最後

需要創業做程序的朋友,本人後端:java,php,前端:react,vue,agular, jq,也會界面設計,價錢可以談,但是不要太過分,可以低於市場價,但是不能遠離市場價~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章