微信小程序 - 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的更多相关文章
- 微信小程序-使用腾讯Wxpage
微信小程序想要更快的速度吗? 满足你 https://github.com/tvfe/wxpage#-c%E5%AE%9A%E4%B9%89 使用超简单(导入wxpage.js,最后使用对象名:P): ...
- 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gc ...
- 微信小程序开发心得
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...
- 微信小程序体验(2):驴妈妈景区门票即买即游
驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...
- 微信小程序(微信应用号)组件讲解
这篇文章主要讲解微信小程序的组件. 首先,讲解新建项目.现在有句话:招聘三天以上微信小程序开发,这个估计只能去挖微信的工程师了.技术新,既然讲解,那我们就从开始建项目讲解. 打开微信web开发者工具, ...
- 神技!微信小程序(应用号)抢先入门教程(附最新案例DEMO-豆瓣电影)持续更新
微信小程序 Demo(豆瓣电影) 由于时间的关系,没有办法写一个完整的说明,后续配合一些视频资料,请持续关注 官方文档:https://mp.weixin.qq.com/debug/wxadoc/de ...
- 通过微信小程序看前端
前言 2016年9月22日凌晨,微信官方通过“微信公开课”公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真正收到内测邀请的公众 ...
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
- 来自于微信小程序的一封简讯
9月21晚间,微信向部分公众号发出公众平台-微信应用号(小程序)的内测邀请,向来较为低调的微信在这一晚没人再忽视它了. 来自个人博客:Damonare的个人博客 一夜之间火了的微信应用号你真的知道吗? ...
随机推荐
- 怎样正确的使用Cookie的Path详细解析
原文地址:http://java-zone.org/1052.html cookie 有路径--path,表示哪些路径下的文件有权限读取该 cookie. path 应该以 “/” 结尾,同名 coo ...
- XCODE调试时不显示变量值/指针地址的解决方案
转:http://blog.csdn.net/samuelltk/article/details/41250151
- ios之快速枚举
for(UIView * subView in self.view.subviews) { if([subView isKindOfClass:[XYZSeniorQueryView class]]) ...
- View Programming Guide for iOS_读书笔记
关于Window的定义的要点 Windows do not have any visible content themselves but provide a basic container for ...
- <c:otherwise>
<c:if>没有<c:else>可以用<c:choose>来取代结构:<c:choose> <c:when test=""&g ...
- Ubuntu14.04LTS下使用eclipse搭建Cocos2d-x的Android环境
from://http://www.58player.com/blog-2534-94136.html 最近想玩玩游戏制作,于是选择了目前流行的游戏引擎Cocos2d-x,这个东西虽然有Android ...
- WordPress基础:常用分类列表wp_list_categories
函数:wp_list_categories($args) 作用:列出某个分类下的分类项目 用法: <ul> <?php $args= array( 'depth'=>1, 'o ...
- Linux、apache 无法使用PHP创建目录和文件
因为项目的需要,这几天搭建了虚拟机,环境是centos7+lamp,可是搭建好网站后,即使把权限放开了(777),我试了改父文件夹权限:重新创建文件夹,改权限再移动文件:更换文件夹的属主.统统不行.这 ...
- COUNT DISTINCT ROW_NUMBER DENSE_RANK 以及对COUNT去重(非PARTITION)
1:COUNT DISTINCT SELECT COUNT(DISTINCT [QS_QuestionStem].Id) AS ReqCount1, ...
- CUDA报错: Cannot create Cublas handle. Cublas won't be available. 以及:Check failed: status == CUBLAS_STATUS_SUCCESS (1 vs. 0) CUBLAS_STATUS_NOT_INITIALIZED
Error描述: aita@aita-Alienware-Area-51-R5:~/AITA2/daisida/ssd-github/caffe$ make runtest -j8 .build_re ...