玄机随录小程序

微信小程序API使用

2020-01-02  本文已影响0人  duangdong

[TOC]

小程序的执行流程

life.png

注册一个小程序(小程序的生命周期)

onLanch

onShow(option)

onHide

onError

注册一个页面(页面的生命周期)

page-life.png

onLoad

初次加载

onShow

页面显示

onReady

初次渲染完成

onHide

onUnLoad

onShareAppMessage

监听用户点击页面内转发按钮(button 组件 open-type="share"

右上角菜单“转发”按钮的行为,并自定义转发内容。

WXS作用以及语法

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。
WXS 与 JavaScript 是不同的语言,有自己的语法,并不和 JavaScript 一致。
但基本是和js一样的
主要应用的场景是 时间格式化以及过滤器的使用,也可以写成js作成工具类,在我们的js文件中先使用

两种wxs的写法

自定义组件

只能使用wx:if;无法使用hidden

父子间传值和vue相似

组件和页面通信

comp.png

父传子

通过属性绑定的形式将值传递给子组件

子传父

通过 triggerEvent 触发事件将数据传递给父组件

插槽slot

在组件的wxml中可以包含 slot 节点,用于承载组件使用者提供的wxml结构。

默认情况下,一个组件的wxml中只能有一个slot。需要使用多slot时,可以在组件js中声明启用。

组件的样式

})


+ 如果这个 [Component 构造器用于构造页面](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html) ,则默认值为 `shared` ,且还有以下几个额外的样式隔离选项可用:
  - `page-isolated` 表示在这个页面禁用 app.wxss ,同时,页面的 wxss 不会影响到其他自定义组件;
  - `page-apply-shared` 表示在这个页面禁用 app.wxss ,同时,页面 wxss 样式不会影响到其他自定义组件,但设为 `shared` 的自定义组件会影响到页面;
  - `page-shared` 表示在这个页面禁用 app.wxss ,同时,页面 wxss 样式会影响到其他设为 `apply-shared` 或 `shared` 的自定义组件,也会受到设为 `shared` 的自定义组件的影响。

+ **[页面向组件传递样式](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html#外部样式类)**

> **注意:在同一个节点上使用普通样式类和外部样式类时,两个类的优先级是未定义的,因此最好避免这种情况。**

+ ```js
  /* 组件 custom-component.js */
  Component({
    externalClasses: ['my-class']
  })
  
  <!-- 组件 custom-component.wxml -->
  <custom-component class="my-class">这段文本的颜色由组件外的 class 决定</custom-component>
  ```

+ ```js
  <!-- 页面的 WXML -->
  <custom-component my-class="red-text" />
  <custom-component my-class="large-text" />
  <!-- 以下写法需要基础库版本 2.7.1 以上 -->
  <custom-component my-class="red-text large-text" />
  ```

### [WX.API]( https://developers.weixin.qq.com/miniprogram/dev/api/ )

#### [网络]( https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html ) 

+ 请求 (request)

+ 我们一般会对

```js
import { baseUrl } from './config.js';
export default (options) => {
  wx.showLoading({
    title: '数据加载中',
  });
  return new Promise((resolve, reject) => {
    wx.request({
      url: `${baseUrl}/${options.url}`,
      method: options.method || 'get',
      data: options.data || {},
      success: resolve,
      fail: reject,
      complete: (res) => {
        wx.hideLoading();
      }
    });
  });
}

开放接口

导航

一些需要注意的地方

上一篇下一篇

猜你喜欢

热点阅读