wepy api

wepy.app Class

App基类,小程序入口

export class App extends wepy.app {
    onLaunch () {

    }
}

属性

  • w x a p p : O b j e c t : t h i s . wxapp:Object: this. wxapp:Object:this.wxapp等同于getApp()。

  • $pages:List: 所有页面列表

格式如下:

  this.$pages = {
      './pages/index': IndexPage
  }

$interceptors:List:所有拦截器列表

格式如下:

  this.$interceptors = {
      'request': {
          config (p) {
              return p;
          },
          success (rst) {

          }
      }
  }

方法

use(middleWare:String|Function):使用中间件。

当前内置两个中间件:

requestfix: 修复小程序请求并发问题。

promisify:使用wepy.xxx的方式请求小程序原生API都将Promise化。

使用方法如下:

this.use('requestfix');
this.use('promisify');
intercept(api:String, provider:Object):使用拦截器对原生API请求进行拦截。

格式如下:

  // app.js
  constructor () {
      super();
      this.intercept('request', {
          config (p) {
              p.timestamp = +new Date();
              return p;
          },
          success (obj) {
              console.log('request success');
          }
      });
  }

wepy.component Class

组件基类

属性

$name:String: 组件名称。
$isComponent:Boolean:是否是组件,如果是页面,此值为false。
$wxpage:Object: 小程序原生page。
$parent:Page|App:组件的父组件,如果当前是组件是Page对象,那么$parent的值为App对象。
$root:Page: 组件所在的Page对象,如果当前组件是Page对象,那么$root的值就是自己本身。
$coms:List<Component>:组件的子组件列表。
$mixins:Array[Mixin]:组件所注入的Mixin对象。
data:Object: 组件需要绑定的数据。
methods:List<Function>:组件需要响应的事件列表。
props:List<Props>:组件允许传递的props列表。
events:List<Function>:组件通信时所需要的事件表现。

方法

setData(key:String|Object, [value:Object]):对原有小程序的setData的封装。

因为WePY的脏检查流程会自动执行setData操作,所以通常情况下不需要使用此方法。

使用方法如下:

  this.setData('list', ['apple', 'pen']);
  this.setData({
      list: ['apple', 'pen']
  });

getCurrentPages():相当于全局方法getCurrentPages()。

$getComponent(com:String):通过组件名称路径查找组件对象。

使用方法如下:

  this.$getComponent('./coma/comb');
  this.$getComponent('../comc');

$invoke(com:String|Component):调用另一组件的方法。

优先调用methods中方法,如果方法不存在,则调用组件的自定义方法,调用自定义方法时,不会传递事件$event。

使用方法如下:

  // coma.js
  this.$invoke('./ComB', 'func1', 'p1', 'p2');
  this.$invoke('./ComB', 'func2', 'p1', 'p2');

  // comb.js
  export class ComB extends wepy.component {
      methods = {
          func1 (p1, p2, evt) {}
      },
      func2 (p1, p2) {}
  }

$broadcast(eventName:String, [args]):组件发起一个广播事件。

向所有子组件发起一个广播事件,事件会依次传播直至所有子组件遍历完毕或者事件被手动终止传播。

使用方法如下:

  // page1.js
  components = { ComA };
  this.$broadcast('broadcast-event', 'p1', 'p2');

  // coma.js
  events = {
      'broadcast-event': (p1, p2, event) {}
  }

$emit(eventName:String, [args]):组件发起一个冒泡事件。

向父组件发起一个冒泡事件,事件会向上冒泡直至Page或者者事件被手动终止传播。

使用方法如下:

  // coma.js
  this.$emit('emit-event', 'p1', 'p2');

  // page1.js
  components = { ComA };
  events = {
      'emit-event': (p1, p2, event) => {}
  }

$apply([func:Function]):组件发起脏检查。

正常流程下,改变数据后,组件会在流程结束时自动触发脏检查。 在异步或者回调流程中改变数据时,需要手动调用$apply方法。

使用方法如下:

  this.userName = 'Gcaufy';
  this.$apply();

  this.$apply(() => {
      this.userName = 'Gcaufy';
  });

$nextTick([func:Function]):组件数据绑定完成后的回调事件,v1.6.1以上可用。

数据绑定后的回调事件,在不传入function时,返回一个promise对象

使用方法如下:

this.userName = 'Gcaufy';
this.$nextTick(function () {
    console.log('UI updated');
});
或者:

this.userName = 'Gcaufy';
this.$nextTick().then(function () {
    console.log('UI updated');
});

wepy.page Class

页面类,继承自wepy.component,拥有页面所有的属性与方法。

属性

全部属性继承自wepy.component。

方法

$preload(key:String|Object, [value:Object]):给页面加载preload数据

加载preload数据后,跳转至另一个页面时,在onLoad方法中可以获取到上个页面的preload数据。

使用方法如下:

  // page1.js
  this.$preload('userName', 'Gcaufy');
  this.$redirect('./page2');

  // page2.js
  onLoad (params, data) {
      console.log(data.preload.userName);
  }

$redirect(url:String|Object, [params:Object]):wx.redirectTo的封装方法。

使用方法如下:

  this.$redirect('./page2', {a: 1, b: 2});
  this.$redirect({
      url: './pages?a=1&b=2'
  });

$navigate(url:String|Object, [params:Object]):wx.navigateTo的封装方法

$switch(url:String|Object):wx.switchTab的封装方法

wepy.event Class

小程序事件封装类

new wepy.event(name:String, source:Component, type:String)

属性

  • name(String): 事件名称

当事件为小程序原生事件时,如tap,change等,name值为system。 当事件为用户自定事件或者组件通信事件时,如 e m i t , emit, emitbroadcast等,name值为自定事件的名称。

  • source(Component):事件来源组件

无论是小程序原生事件还是自定事件,都会有对应的事件来源组件。

  • type(String): 事件类型

$emit事件中,type值为emit。bindtap事件中,type值为tap。

方法

  • $destroy():终止事件传播

e m i t 或 者 emit或者 emitbroadcast事件中,调用$destroy事件终止事件的传播。

  • $transfor(wxevent:Object):将内部小程序事件的属性传递到当前事件。

wepy.mixin Class

Mixin基类,用于复用不同组件中的相同功能。

// mymixn.js
export class MyMixin extends wepy.mixin {
    // my logic here
}

// mycom.js
import MyMixin from './mymixin';
export class MyCom extends wepy.component {
    mixins = [MyMixin];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值