微信小程序 - wxpage

WXPAGE

开源地址如下:https://github.com/tvfe/wxpage

 

极快的小程序打开 - 势必是用户体验的重中之重

 

 

#页面描述


A:代表全局App.js

var wxpage = require(‘./lib/wxpage‘)

wxpage.A({
  config: {
    route: [‘test/pages/$page‘, ‘/pages/$page‘],
    resolvePath: function(name) {
      return ‘/pages/‘ + name;
    }
  },

  onLaunch: function(opts) {
    wxpage.on(‘some_message‘, function(msg) {

    })

  },

  onAwake: function(time) {

  },

  onShow: function() {

  }
})

 

C:代表组件

 

Component.C({
  data: {},
  created: function() {
    this.$id = 1
    // console.log(‘[Component/Header] created‘, this.properties, this.is)
  },
  attached: function() {
    // console.log(‘[Component/Header] attached‘, this.properties, this.is, this.$root)
  },
  ready: function() {
    // 调用父组件方法
    this.$call(‘callFromComponent‘, ‘header‘)
    // console.log(‘[Component/Header] ready‘, this.properties, this.is)
  },
  methods: {
    callFromComponent: function (from) {
      // console.log(‘!!! call from:‘, from)
    }
  }
})


P:代表页面

var P = require(‘../lib/wxpage‘)

P(‘index‘, {
  data: {

  },
  onPageLaunch: function() {

  },
  onAppLaunch: function(opts) {

  },
  onLoad: function() {

    this.$preload(‘play?cid=456‘);

    this.$setData({
      name: ‘LLLLLL‘
    })

    this.$cache.set(‘cache‘, {
      name: ‘wxpage‘
    })

    this.$session.set(‘session‘, {
      name: ‘wxpage‘
    })

    setTimeout(function() {
      P.emit(‘some_message‘, ‘I am index!‘)
    }, 100)
  },
  onReady: function() {

  },
  onPlay: function() {
    this.$route(‘play?cid=123‘)
  },
  onPlayNav: function() {
    wx.navigateTo({
      url: ‘/pages/play?cid=abcd‘
    })
  },
  onShow: function() {

  },
  onAwake: function(t) {

  },
  onClickBefore: function(e) {

  },
  onClickAfter: function(e) {},
  onTouchend: function(e) {},
  onTTap: function() {},
  callFromComponent: function(name) {

  }
})

  

我们只需要分析出它们(微信小程序原生和Wxpage)的不同之处即可

 

#生命周期

 

#生命周期
##onPageLaunch()
小程序第一次运行的时候调用,此时对应的页面并未被加载

##onAwake(time<Number>)
小程序进入后台模式后再激活的时候触发。time是耗时

##onAppLaunch(opts)
App.onLaunch 触发时调用。 
opts:
path String 打开小程序的路径
query Object 打开小程序的query
scene Number 打开小程序的场景值

##onAppShow(opts)
App.onShow 触发时调用。
opts:
path String 打开小程序的路径
query Object 打开小程序的query
scene Number 打开小程序的场景值

##onPreload(res)
调用 this.$preload(url) 的时候触发,此时对应的页面并未被加载

##onNavigate(res)
页面间跳转开始时调用,此时对应的页面并未被加载

 

 

#事件描述

#事件描述

##$name
获取当前页面名称

##state
页面的一些状态集合(是否搜狐个被小程序启动的页面)

##session(页面级缓存)
this.$session.set(‘page_session_data‘, {
        name: ‘首页‘
})

##缓存cache
this.$cache.set
可以设置同步或异步以及缓存时间

##$emitter


##$route
wx.navigatorTo

##$redirect
wx.redirectTo

##$switch
wx.switchTab

##$launch
wx.reLaunch

##$back
wx.navigateBack

##$preload
提前加载页面

##$bindRoute
点击代理方法,绑定 $onRoute 逻辑,在元素上声明 data-url 作为跳转地址,支持切面方法:
###data-before:跳转前执行
###data-after:跳转后执行
```<button
  bindtap="$bindRoute"
  data-url="/pages/play"
  data-before="onClickBefore"
>click redirect</button>
```

##$bindRedirect()
###data-before:跳转前执行
###data-after:跳转后执行
同 $bindRoute, 绑定 $onRedirect

##$bindSwitch()
###data-before:跳转前执行
###data-after:跳转后执行
同 $bindRoute, 绑定 $onSwitch

#$on(key, handler)
监听跨页面间的消息

#$emit(key, data)
派发页面间的消息

#$off(key, handler)
取消监听消息

#$put(id, value)
指定 id 存在一份数据,可以为任何类型,以供其它逻辑获取使用

#$take(id)
根据 id 获取数据,数据只能被存在一次,获取一次。如果只存放一次,第二次获取 会得到 null 。

 

在使用之前,大家可以先github拉取一个test下来,运行,看看它与小程序有何不同之处进行比较

在熟悉之后,可以写一个开发似的模板,以便其调用

框架来自“腾讯视频”小程序的项目沉淀,我建议大家可以先看完github文档,随即上手!

 

微信小程序 - wxpage

上一篇:微信模板消息推送


下一篇:PHP判断是否是微信浏览器访问的方法