微信小程序 五 npm 包 、安装 vant组件、promise组件、全局数据共享、 分包!!!、自定义 tabBar 案例

总结

  1. 能够知道如何安装和配置 vant-weapp 组件库
    参考 Vant 的官方文档
  2. 能够知道如何使用 MobX 实现全局数据共享
    安装包、创建 Store、参考官方文档进行使用
  3. 能够知道如何对小程序的 API 进行 Promise 化
    安装包、在 app.js 中进行配置
  4. 能够知道如何实现自定义 tabBar 的效果
    Vant 组件库 + 自定义组件 + 全局数据共享

1.0 使用 npm 包

1.1 小程序对 npm 的支持与限制

目前,小程序中已经支持使用 npm 安装第三方包,从而来提高小程序的开发效率。但是,在小程序中使用
npm 包有如下 3 个限制:

  1. 不支持依赖于 Node.js 内置库 的包
  2. 不支持依赖于 浏览器内置对象 的包
  3. 不支持依赖于 C++ 插件 的包

总结:虽然 npm 上的包有千千万,但是能供小程序使用的包却“为数不多”。

1.2 Vant Weapp

Vant Weapp 是有赞前端团队开源的一套小程序 UI 组件库,助力开发者快速搭建小程序应用。它所使用的是 MIT 开源许可协议 ,对商业使用比较友好。

官方文档地址 https://youzan.github.io/vant-weapp

1.3 安装 Vant 组件库

!注意 一开始要在小程序中 先 npm init -y (安装 包管理配置文件 package.json
在小程序项目中,安装 Vant 组件库主要分为如下 3 步:(去网站教程看)

  1. 通过 npm 安装(建议指定版本为@1.3.3)
  2. 构建 npm 包
  3. 修改 app.json

详细的操作步骤,大家可以参考 Vant 官方提供的快速上手教程:
https://youzan.github.io/vant-weapp/#/quickstart#an-zhuang

1.4 使用 Vant 组件

安装完 Vant 组件库之后,可以在 app.json 的 usingComponents 节点中引入需要的组件,即可在 wxml 中直接使用组件。示例代码如下:

// app.json
"usingComponents": {
   
	"van-button": "@vant/weapp/button/index"
}

// 页面 .wxml 结构
<van-button type="primary"></van-buttin>

1.5 定制全局主题样式

  1. Vant Weapp 使用 CSS 变量来实现定制主题。 关于 CSS 变量的基本用法,请参考 MDN 文档:

https://developer.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties

  1. 这个是原生的方法,定义的变量名字 前面要加 - -, 调用的时候,前面要加 var(变量名),这个调用是有局限性的,html中定义,表示全局调用,某个 .class名字里面调用, 就是 那个 .class 里面的组件才能用。
普通 js 文件
html {
        
// 定义 css变量
 --main-color: #c00000l
}
.box1, .box2 {
   
	background-color: var(--main-color);
}
  1. app.wxss 中,写入 CSS 变量,即可对全局生效:
app.wxss

page {
   
	// 订制警告按钮的背景颜色和边框颜色
	--button-danger-background-color: #cooooo;
	--button-danger-border-color: #D60000;
}

所有可用的颜色变量,请参考 Vant 官方提供的配置文件:
https://github.com/youzan/vant-weapp/blob/dev/packages/common/style/var.less

2.0 使用 npm 包 - API Promise化

2.1 基于回调函数的异步 API 的缺点

默认情况下,小程序官方提供的异步 API 都是基于回调函数实现的,例如,网络请求的 API 需要按照如下的方式调用:

wx.request({
   
	method: '',
	url: '',
	data: {
   },
	success: () => {
   }, // 请求成功的回调函数
	fail: () => {
   },    // 请求失败的回调函数
	complete: () => {
   } // 请求完成的回调函数
})

缺点:容易造成回调地狱的问题,代码的可读性、维护性差!

2.2 API Promise 化

API Promise化,指的是通过额外的配置,将官方提供的、基于回调函数的异步 API,升级改造为基于Promise 的异步 API,从而提高代码的可读性、维护性,避免回调地狱的问题。

2.3 实现 API Promise 化

在小程序中,实现 API Promise 化主要依赖于 miniprogram-api-promise 这个第三方的 npm 包。它的安装和使用步骤如下:( )

 npm install --save miniprogram-api-promise@1.0.4

安装好以后, 要删除 miniprogram_npm 文件, 然后 在工具中 再次 构建 npm 刷新一下
// 在小程序入口文件中(app.js),只需调用一次 PromisifyAll() 方法,
// 即可实现异步 API 的 Promise 化
import {
    promisifyAll } from 'miniprogram-api-promise'

const wxp = wx.p = {
   }
// promisify all wx's api
promisifyAll(wx, wxp)

2.4 调用 Promise 化之后的异步 API

<van-button type="danger" bindtap="getInfo">vant按钮</van-button>

// 在页面的 .js 文件中, 定义对应的 tap 事件处理函数
  async getInfo() {
   
    const {
    data: res } = await wx.p.request({
   
      method: 'GET',
      url: 'https://www.escook.cn/api/get',
      data: {
   name: 'zs', age: 20}
    })
    console.log(res);
  },

3.0 全局数据共享

全局数据共享(又叫做:状态管理)是为了解决组件之间数据共享的问题
开发中

你可能感兴趣的:(微信小程序,小程序)