// app.json "usingComponents" : { "van-button" : "@vant/weapp/button/index" } // 页面的.wxml结构 <van-button type="primary">按钮</van-button>
在app.wxss中,写入css变量,即可对全局生效
// app.wxss page { --button-danger-background-color: #C000000; --button-danger-border-color: #D60000; }所有可用的 颜色变量 ,请参考 Vant 官方提供的配置文件: https://github.com/youzan/vant-weapp/blob/dev/packages/common/style/var.less
wx.request({ method: '', url: '', data: {}, success: () => {}, // 请求成功的回调函数 fail: () => {}, // 请求失败的回调函数 complete: () => {} // 请求完成的回调函数 })缺点:容易造成 回调地狱 的问题,代码的 可读性 、 维护性 差!
// 安装插件 npm install --save miniprogram-api-promise@1.0.4 // 在小程序入口文件中(app.js),只需要调用一次promisifyAll() 方法,即可实现异步API 的Promise化 import { promisifyAll } from 'miniprogram-api-promise' const wxp = wx.p = {} // promisify all wx's api promisifyAll(wx,wxp)
// 页面的.wxml 结构 <van-button type="danger" bindtap="getInfo">vant按钮</van-button> // 页面的.js文件 async getInfo(){ const { data: res } = await wx.p.request({ method: 'GET', url: 'https:// xxx', data: {} }) console.log(res) }
// 安装MobX相关的包 npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram-bindings@1.2.1
注意:MobX 相关的包安装完毕之后,记得删除 miniprogram_npm 目录后,重新构建 npm。
import { observable, action } from 'mobx-miniprogram' export const store = observable({ // 数据字段 numA: 1, numB: 2, // 计算属性 get sum() { return this.numA + this.numB }, // actions 方法,用来修改 store 中的数据 updateNum1: action(function (step) { this.numA += step }), updateNum2: action(function (step) { this.numB += step; }) })
// 页面的.js文件 import { createStoreBindings } from 'mobx-miniprogram-bindings' import { store } from '../../store/store' Page({ onl oad: function () { this.storeBindings = createStroeBindings(this,{ store, fields: ['numA','numB','sum'], actions: ['updateNum1'] }) }, onUnload: function(){ this.storeBindings.destroyStoreBindings() } })
// 页面的.wxml结构 <view>{{numA}} + {{numB}} = {{sum}}</view> <van-button type="primary" bindtap="btnHandler1" data-step="{{1}}">numA + 1 </van-button> <van-button type="primary" bindtap="btnHandler1" data-step="{{-1}}">numA - 1 </van-button> // 按钮tap事件的处理函数 btnHandler1(e) { this.updateNum1(e.target.dataset.step) }
import { storeBindingsBehavior } from 'mobx-miniprogram-bindings' import { store } from '../../store/store' Component({ behaviors: [ storeBindingsBehavior ], storeBindings: { store, fields: { numA: () => store.numA, numB: (store) => store.numB, sum: 'sum' }, actions: { updateNum2: 'updateNum2' } } })
// 页面的.wxml结构 <view>{{numA}} + {{numB}} = {{sum}}</view> <van-button type="primary" bindtap="btnHandler2" data-step="{{1}}">numB + 1 </van-button> <van-button type="primary" bindtap="btnHandler2" data-step="{{-1}}">numB - 1 </van-button> // 按钮tap事件的处理函数 btnHandler2(e) { this.updateNum2(e.target.dataset.step) }
{ "pages": [ "pages/index", "pages/logs" ], "subpackages": [ // 通过subpackages节点,声明分包的结构 { "root": 'moduleA',// 第一个分包的根目录 "pages": [ // 当前分包下,所有页面的相对存放路径 "pages/rabbit", "pages/squirrel" ] },{ "root": "moduleB", // 第二个分包的根目录, "name":"pack2", // 分包的别名 "pages": [ // 当前分包下,所有页面的相对存放路径 "pages/pear", "pages/pineapple" ], "independent": true // 通过此节点,声明当前 moduleB 分包为“独立分包” } ] }
{ "pages": [ "pages/index", "pages/logs" ], "subpackages": [ { "root": 'moduleA', "pages": [ "pages/rabbit", "pages/squirrel" ] },{ "root": "moduleB", "pages": [ "pages/pear", "pages/pineapple" ], "independent": true // 通过此节点,声明当前 moduleB 分包为“独立分包” } ] }
// app.json { "preloadRule": { "pages/contact/contact": { // network 表示在指定的网络模式下进行预下载 // 可选择值 all(不限网络)和 wifi(仅 wifi模式下进行预下载) // 默认值 wifi "network": 'all', // packages 表示进入页面后,预下载那些分包 // 可用通过 root 或 name 指定预下载哪些分包 "packages": ["pkgA"] } } }
同一个分包中的页面享有共同的预下载大小限额 2M。