亚洲视频二区I天堂网av 在线I丰满人妻AV一区二区三I088精品在线观看视频IAV在线网站免费I亚洲人成影院在线I91精品91久久久777777I131M久I日日摸日日

027-81331413

微信小程序初始化項目架構

發布時間:2020-10-30 瀏覽:2667

好維護的項目需要一個好的架構開始,下面的架構是我根據七個微信小程序項目總結

開發者新建項目

該架構未使用 云開發 ,需要 云開發 額外勾選

使用npm

從小程序基礎庫版本 2.2.1 或以上、及開發者工具 1.02.1808300 或以上開始,小程序支持使用 npm 安裝第三方包。 首先我們需要初始化項目包,可以看到項目根目錄生成了包配置文件 package.json

npm init -y
復制代碼

使用vant-ui

使用ui框架可以幫助我們提高開發效率,重復造輪子。 Vant-Weapp 框架就是一個不錯的選擇。

  • 步驟一 通過 npm 安裝

# 通過 npm 安裝
npm i @vant/weapp -S --production
復制代碼
  • 步驟二 構建 npm 包 打開微信開發者工具,點擊 工具 -> 構建 npm,并勾選 使用 npm 模塊 選項,構建完成后,即可引入組件

behaviors公用行為

behaviors 是用于組件間代碼共享的特性,類似于 vue 中的“mixins”。每個 behavior 可以包含一組屬性、數據、生命周期函數和方法。組件引用它時,它的屬性、數據和方法會被合并到組件中,生命周期函數也會在對應時機被調用。 每個組件可以引用多個 behavior , behavior 也可以引用其他 behavior 。

詳細的參數含義和使用請參考 Behavior 參考文檔。 在behaviors目錄下新建testBehavior.js,一般我會根據模塊創建 behavior ,像用戶模塊會新建userBehavior.js

<!--behaviors/testBehavior.js-->
export default Behavior({
  properties: {

  },
  data: {
    testData: {}
  },
  
  methods: {
    /**
     * @description 測試方法
     */
    testMethods () {

    }
  }
})
復制代碼

components公用組件

全局公用組件components

該目錄存放著項目中公共的組件,包括一些彈出層,加載組件等。組件以大駝峰命令,組件中可以再抽離各個小組件形成。

頁面的業務組件components

每個頁面組件應該由不同的小組件組件,這樣拆成各個小組件開發,有助于我們維護開發。

頁面引入組件

{
  "usingComponents": {
    "index-child": "./components/IndexChild/index",
    "index-child2": "./components/IndexChild2/index"
  }
}
復制代碼

頁面由各個組件組件,分別處理組件的業務邏輯

<!--index.wxml-->
<view class="container">
  <index-child />
  <index-child2 />
</view>
復制代碼

config配置

在config目錄新建index.js配置項目所需的要配置

const BASE_URL = 'https://shop.freshlejia.com/apiStore/'  //接口請求的基本路徑

export default {
  BASE_URL,
  UPLOAD_URL: `${BASE_URL}api/common/upload` //上傳服務器的路徑
}
復制代碼

icons目錄配置iconfont字體

  • 步驟一:在iconfont.cn新建項目組

  • 步驟二:添加項目所需的icon,下載相對對應的文件

  • 步驟三: 項目引入相關文件 在根目錄新建icons,存放剛才下載的文件嗎,修改 iconfont.css文件成 iconfont.wxss

全局項目文件中引入

/**app.wxss**/
@import './icons/iconfont';
復制代碼

images圖片資源

存放圖片資源,也可按模塊新建子目錄存放。小圖標可以轉base64,具體項目根據自己需求來。

utils工具包

utils目錄存放和項目有關的工具包文件

使用http請求庫flyio

小程序提供的官方提供了request請求,但是我們需要封裝成我們項目使用的請求才行,因為我們總會需要全局請求攔截處理,全局請求響應處理等,我們能不能在小程序中像 vue 項目中使用 axios 一樣, fiyio 工具包就可以幫助我們使用這個問題。我們可以有以下兩種方式實現選擇(推薦后者面向對象):

封裝請求包對象

  • 步驟一:下載 flyio 包存放在 utils 下

  • 步驟二:封裝http.js文件

<!--utils/http.js-->
import config from '../config/index'
const Fly = require('./flyio/index')
const fly = new Fly

//定義請求的基本路徑
fly.config.baseURL = config.BASE_URL

//請求攔截器
fly.interceptors.request.use(request => {
  //攔截處理
  request.headers = { //請求頭
    "Content-Type": "application/x-www-form-urlencoded",
  }
  return request
})

//響應攔截
fly.interceptors.response.use(response => {
  //攔截處理操作
  return response
})


export const api = {
  //返回結果的狀態碼
  CODE: {
    SUCCESS: 200000, //調用成功
    OPTIONS_ERROR: 5000100 //參數錯誤
  },

  get: (params) => {
    return fly.get(params.url, params.data)
  },

  post: (params) => {
    return fly.post(params.url, params.data, params.options)
  }
}
復制代碼

封裝請求基類(ES6的class方式實現)

重寫封裝中(待定)...

項目工具tool處理函數文件

新建tool.js文件,編寫項目工具小函數

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : '0' + n
}

module.exports = {
  formatNumber: formatNumber
}
復制代碼

項目業務相關工具函數文件

新建index.js文件,編寫業務相關函數

/**
 * @description 檢查是否需要更新小程序
 */
export function checkUpdateApp() {
  if (wx.canIUse('getUpdateManager')) {
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(function (res) {
      // 請求完新版本信息的回調
      if (res.hasUpdate) {
        console.log('res.hasUpdate====')
        updateManager.onUpdateReady(function () {
          wx.showModal({
            title: '發現新版本',
            content: '升級至新版本,享受最新最全的活動內容',
            showCancel: false,
            success: function (res) {
              // res: {errMsg: "showModal: ok", cancel: false, confirm: true}
              if (res.confirm) {
                // 新的版本已經下載好,調用 applyUpdate 應用新版本并重啟
                updateManager.applyUpdate()
              }
            }
          })
        })
        updateManager.onUpdateFailed(function () {
          // 新的版本下載失敗
          wx.showModal({
            title: '已經有新版本了喲~',
            content: '新版本已經上線啦~,請您刪除當前小程序,重新搜索打開喲~',
            showCancel: false
          })
        })
      }
    })
  }
}
復制代碼

models模塊封裝類

該模塊主要是采用 MVC 的M層,處理數據層面,主要包括相關的http請求等。

import { api } from '../utils/http'

class UserModel{
  /**
   * @description 獲取當前登錄的用戶信息
   */
  getUserInf (id) {
    return api.post({
      url: 'store/user/info',
      data:{
        id
      }
    })
  }

}

export default UserModel
復制代碼

pages視圖層

該模塊主要是采用 MVC 的V層,建議按照模塊分目錄解構,比如用戶模塊的業務全部建議在user文件夾下。

wxs過濾器

項目中我們總會需要對數據進行過濾修改,我們就需要在項目中使用wxs過濾器

<!--order.wxs-->
/**
 * @description 將整數保留兩位小數,若為整數或一位小數則補零
 * @param x 
 */
var keepTwoDecimals = function(x) {
  var f = Math.round(x * 100) / 100;
  var s = f.toString();
  var rs = s.indexOf('.');
  if (rs < 0) {
  rs = s.length;
  s += '.';
  }
  while (s.length <= rs + 2) {
  s += '0';
  }
  return s;
}

module.exports = {
  keepTwoDecimals:keepTwoDecimals
}
復制代碼

頁面組件中使用wxs

<!-- order.wxml -->
<wxs src="../../../../../filter/store.wxs" module="tools"></wxs>
<view class="statistics-content-total__count">
{{earnings.earningsAllCount ? tools.keepTwoDecimals(earnings.earningsAllCount) : 0.00}}
</view>
復制代碼

vscode插件預處理器轉wxss輔助開發

less

在開發微信小程序時,寫css會比較麻煩,效率不高,最好的辦法就是使用less或者sass,可以使用gulp等配置編譯,但是使用此法又略顯麻煩,最好的辦法就是使用Vscode裝一個less轉wxss插件, Easy LESS

1.在Vscode中搜索easy less 插件并安裝; 2.在項目下建一個.vscode文件夾,并在.vscode文件夾下建一個settings.json,settings.json 中配置內容如下:

"less.compile": {
    "outExt": ".wxss"
}
復制代碼

3.outExt 參數為導出文件名,默認為.css,可以配置為.wxss,其他配置項可查看 文檔 也可以配置文件生成目錄:

"less.compile": {
    "out": "${workspaceRoot}\\css\\css\\"
}
復制代碼

${workspaceRoot}代表當前項目的根目錄,后面路徑自行配置。


主站蜘蛛池模板: 变态美女紧缚一区二区三区 | 国产午夜福利精品一区 | 特黄做受又硬又粗又大视频小说 | 天堂а√在线官网 | 日本亚洲精品一区二区三 | 色琪琪丁香婷婷综合久久 | 亚洲人成精品久久久久桥 | 精品www | 久久9999久久免费精品国产 | 国产亚洲精品一区二区在线观看 | 日韩人妻无码免费视频一区二区三区 | 欧美破处女| 欧美影院在线观看 | 亚洲精品乱码久久久久久v 国产精品免 | 日批视频免费看 | 白丝美女被狂躁免费视频网站 | 亚洲日本一本dvd高清 | 91操操操 | 台湾无码av一区二区三区 | 亚洲午夜精品一区二区三区 | av网站黄色 | 日本强伦姧人妻久久影片 | 亚洲成人综合在线 | 97成人精品 | 欧美日韩在手机线旡码可下载 | 黄色a级网站| 人乳喂奶hd无中字 | 中文字幕日韩一区二区不卡 | 激情文学亚洲 | 亚洲一区国产一区 | 丰满少妇高潮惨叫正在播放 | 色视频在线观看视频 | 精品无码专区久久久水蜜桃 | 国内精品久久久久久久影院 | 99国产精品自拍 | 国产精品美女久久久亚洲 | 国产专业剧情av在线 | 成人欧美一级特黄 | 老女人毛片50一60岁 | 69精品久久久 | 一级特毛片| 好屌爽在线视频 | 人人爽人人爽人人片a免费 久久图片视频 | 1769国产 | 天堂网资源中文最新版 | 国产色秀视频在线播放 | 么公的好大好硬好深好爽视频 | 无码人妻丝袜在线视频 | 久久久噜噜噜久久中文字幕色伊伊 | 欧美极品在线观看 | 少妇精品久久久久久久久久 | 日本少妇又色又爽又高潮看你 | 久九九久视频精品免费 | 日韩 国产 欧美 | 亚洲中文在线播放一区 | 国产女主播在线喷水呻吟 | 国产乱人伦真实精品视频 | 91丨九色丨蝌蚪丨老版 | 亚洲综合网在线 | 国产裸体视频bbbbb | 免费在线毛片 | 深夜在线免费观看 | 无码毛片一区二区三区本码视频 | 青草青在线视频 | 国产精品久久久久久久小唯西川 | 欧美又大又硬又粗bbbbb | 日日躁夜夜躁白天躁晚上 | 国产制服丝袜欧美在线观看 | 在线观看国产网址你懂的 | 日日碰狠狠躁久久躁 | 日韩不卡手机视频在线观看 | 毛片免费视频在线观看 | 久久国产自偷自偷免费一区调 | 欧美 日韩 人妻 高清 中文 | 亚洲一区二区制服在线 | 激情五月亚洲 | 97精品久久久 | 国产乱来乱子视频 | 国产乱人伦app精品久久 | 欧美亚洲熟妇一区二区三区 | 尤物一区二区三区精品 | 亚洲777| 日韩av在线播放不卡 | 国产精品国产三级国产an | 欧美乱码卡一卡二卡三新区 | 亚洲成av人片一区二区小说 | 五十六十日本老熟妇乱 | 影音先锋人妻啪啪av资源网站 | 波多野结衣一区二区三区高清av | 国产伦精品一区二区三区照片 | 色屋永久 | 成人在线网站 | 亚洲精品一二区 | 国产一级黄色av | 日韩国产欧美在线观看 | 精品一卡二卡三卡四卡网站 | 久久网站av| 洗澡被公强奷30分钟视频 | 国产成人精品无码片区在线观看 |