1. 反对npm

http://cdevelopers.weixin.qq....

  1. 初始化:npm init
  2. 装置依赖项:npm install
  3. 装置实现后须要从新构建一次:小程序IDE --> 构建 npm

2. promise 化

https://github.com/youngjunin...

app.js内调用一次

import { promisifyAll } from 'wx-promise-pro'// promisify all wx‘s apipromisifyAll()App({  onLaunch() {     },  globalData: {     }})

3. 反对 async await

https://developers.weixin.qq....

小程序编辑器内选中加强编译。

4. 网络申请

https://github.com/wendux/fly

微信小程序我的项目倡议间接下载源码到的小程序工程:

https://wendux.github.io/dist...


应用Fly.jshttp申请库,编写公共申请

const Fly = require('../lib/flyio')const fly = new Fly()fly.config.baseURL = 'http://127.0.0.1:7001/api'fly.config.timeout = 6000// 申请拦截器fly.interceptors.request.use(request => {  wx.showLoading({ title: '数据加载中...' })  const token = wx.getStorageSync('token')  if (token) {    request.headers['token'] = `${token}`  }  return request})// 响应拦截器fly.interceptors.response.use(  // success  (response) => {    wx.hideLoading()    return response.data || {}  },  // error  (error) => {    wx.hideLoading()    const isErrMsg = error.response && error.response.data    wx.showToast({      title: isErrMsg ? error.response.data.msg || '服务器异样' : error.message,      icon: 'none',      duration: 3000    })  })module.exports = {  fly}

5. 引入Vant Weapp

https://vant-contrib.gitee.io...

Vant webapp 反对 rpx

https://github.com/yingye/pos...

 npm install gulp --save-dev  npm install gulp-postcss --save-dev  npm install postcss-px2units --save-dev

新建gulpfile.js

// gulpfile.jsvar gulp = require('gulp');var postcss = require('gulp-postcss');var pxtounits =  require('postcss-px2units');gulp.task('vant-css', function () { return gulp.src(['miniprogram_npm/@vant/weapp/**/*.wxss','!miniprogram_npm/@vant/weapp/common/index.wxss'])   .pipe(postcss([pxtounits({     multiple: 2,     targetUnits: 'rpx'   })]))   .pipe(gulp.dest('miniprogram_npm/@vant/weapp/'));});
疏忽@vant/weapp/common/index.wxss,示意不解决vant的1px边框CSS代码。

package.json中增加执行命令

"scripts": {    "px2rpx": "gulp vant-css"}

npm run px2rpx

如果后续没有用到的组件库,能够在miniprogram_npm目录删除多余的组件。

6. 全局款式

app.wxss

page {  /*设置全局字体*/  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,    Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei',    sans-serif;    font-size:32rpx;        }view,text,input,image,button,scroll-view,cover-view {  box-sizing: border-box;  margin: 0;  padding: 0;}

7. 自定义tabbar

https://developers.weixin.qq....
  1. 在 app.json 中的 tabBar 项定义菜单和指定 custom 字段为true
"tabBar": {    "custom": true,    "color": "#F4F5F5",    "selectedColor": "#000000",    "list": [      {        "pagePath": "pages/index/index",        "iconPath": "/static/images/tabBar/home.png",        "selectedIconPath": "/static/images/tabBar/home_selected.png"      },      {        "pagePath": "pages/sao/sao",        "text": "扫码",        "iconPath": "/static/images/tabBar/sao_selected.png",        "selectedIconPath": "/static/images/tabBar/sao_selected.png"      },      {        "pagePath": "pages/my/my",        "iconPath": "/static/images/tabBar/my.png",        "selectedIconPath": "/static/images/tabBar/my_selected.png"      }    ]  }
  1. 增加 tabBar 代码文件,在代码根目录下增加入口文件:

custom-tab-bar/index.js
custom-tab-bar/index.json
custom-tab-bar/index.wxml
custom-tab-bar/index.wxss

index.js定义tabBar列表和抉择切换

Component({  data: {    selected: null,    tabBarList: [      {        pagePath: '/pages/index/index',        iconPath: '/static/images/tabBar/home.png',        selectedIconPath: '/static/images/tabBar/home_selected.png'      },      {        pagePath: '/pages/sao/sao',        text: '扫码',        iconPath: '/static/images/tabBar/sao_selected.png',        selectedIconPath: '/static/images/tabBar/sao_selected.png',        isSpecial: true      },      {        pagePath: '/pages/my/my',        iconPath: '/static/images/tabBar/my.png',        selectedIconPath: '/static/images/tabBar/my_selected.png'      }    ]  },  methods: {    switchTab(e) {      const data = e.currentTarget.dataset      const index = data.index      // 扫码      if (index === 1) {        wx.scanCode({          success(res) {            console.log(res)          },          fail(err) {            console.log(err)          }        })      } else {        const url = data.path        wx.switchTab({ url })        this.setData({ selected: data.index })      }    }  }})

index.json

{  "component": true}

index.wxml

<view class="tab-bar-wrap">    <block wx:for="{{tabBarList}}" wx:key="pagePath">        <!--扫码非凡布局-->        <view wx:if="{{item.isSpecial}}" class="tab-bar-nav" data-index="{{index}}" data-path="{{item.pagePath}}" bindtap="switchTab">            <!--圆角-->            <view class="special-warp-border" />            <view class="special-wrap">                <image class="tab-bar-icon" src="{{item.iconPath}}" />                <text>{{item.text}}</text>            </view>        </view>        <view wx:else class="tab-bar-nav" data-index="{{index}}" data-path="{{item.pagePath}}" bindtap="switchTab">            <image class="tab-bar-icon" src="{{selected === index ? item.selectedIconPath : item.iconPath}}" />            <text>{{item.text}}</text>        </view>    </block></view>

index.wxss

.tab-bar-wrap {  display: flex;  flex-direction: row;  justify-content: space-around;  align-items: center;  position: fixed;  bottom: 0;  left: 0;  z-index: 9999;  width: 100%;  height: 120rpx;  box-shadow: 0 2rpx 12rpx 0 rgb(0, 0, 0, 0.3);}.tab-bar-nav {  position: relative;  flex: 1;  height: 100%;  display: flex;  flex-direction: column;  justify-content: center;  align-items: center;  font-size: 24rpx;  background-color: #fff;}.tab-bar-icon {  width: 70rpx;  height: 70rpx;}/*扫码布局*/.special-warp-border {  position: absolute;  border-radius: 50%;  border: 2rpx solid #dcdfe6;  top: -80rpx;  background-color: #fff;  box-sizing: border-box;  width: 160rpx;  height: 160rpx;}.special-wrap {  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  position: absolute;  top: -50rpx;}

最初在index.js和my.js 定义getTabBar() 选中性能,并在onShow里调用

  onShow: function () {   this.setTabBarSelected()  },     // 设置自定义tabBar下标   setTabBarSelected() {    if (typeof this.getTabBar === 'function' && this.getTabBar()) {      this.getTabBar().setData({        selected: 0      })    }  }

8. 自定义导航栏

设置app.json navigationStyle

 "window":{    "navigationStyle": "custom"  }

https://developers.weixin.qq....

https://github.com/lingxiaoyi...

把代码间接复制下来,不便进行二次批改。

在app.json 进行全局引入

"usingComponents": {    "nav-bar": "/components/nav-bar",  }

而后在页面里就能够应用了

<nav-bar title="我是题目"  color="#606266" background="#ffffff"></nav-bar>

9. 地图上显示弹出层

在 cover-view 中应用css动画,显著有不晦涩景象。