移动开发的页间传值方式
在移动开发过程中,这里以iOS原生开发为例,在整个开发中页面间有多种传值方式
- 属性传值
- Block传值
- 代理传值
- 单例传值
- 通知传值
- ...
主要是以上几种传值方式,来应对一些复杂的业务逻辑
微信小程序的页间传值方式
微信小程序因为是面向功能较为简单的需求进行开发(不排除以后会复杂起来),所以传值的方式比较少
路径传值是目前看来微信官方给的最靠谱的传值方式
wx.navigateTo({
url: 'test?id=1'
})
//test.js 取值方式
Page({
onLoad: function(option){
console.log(option.query)
}})
这个是我自己YY起的名字
对,利用app.js暴漏公共属性进行
// app.js 设定公共属性
data: {
hl:"hello world!"
}
// test.js 取出公共属性
var app = getApp()
console.log(app.hl);
然后通过onshow方法判断激活处理
这个比较好理解,放在storage的key-value,可以使用官方的api进行“增删改查”。
然后通过onshow方法判断激活处理
缺陷
从上面**微信小程序的页间传值方式**中可以看到,微信小程序的传值方式都是建立在**被动传值,主动处理**的基础上的.
除了你以静态变更变量后,主动在onload或者onshow中进行主动唤醒处理方法,否则你没有什么方法来进行逻辑上的主动处理。
这样会造成两个问题:
以移动开发模式来解决问题
反观,在移动开发中,各种传值方式是为了满足不同场景下的不同调用,这样可以灵活的解决不同场景下的不同需求。
比如场景,用户选择启动**“夜间模式”**,那么我们需要将整个app的主题更换为黑色主题,如果按照现有的方法,我们需要依依在onshow中进行判断。
当然这个例子并不完全正确,你也可以通过设置全局的css来进行。
昨天我发布了WxNotificationCenter - 微信小程序通知广播模式类,降低小程序开发的耦合度,是借鉴iOS开发中的通知模式来实现。
主要就是实现主动注册通知,然后分发通知后多处共同分别处理的解决方案。
这种方案不一定是好的,目前可能没有很多微信小程序会用到,但是在处理不同逻辑过程中,需要我们去思考一下那种更加人性化和方便,来解决实际问题。
WxNotificationCenter - 微信小程序通知广播模式类,降低小程序开发的耦合度 解决的问题就是**一对多,多触发**的主动技能。你可以实际看我在这个过程中的demo

icindy/WxNotificationCenter/blob/master/README.md
# WxNotificationCenter
WxNotificationCenter - 微信小程序通知广播模式类,降低小程序开发的耦合度
## 信息
来自[微信小程序开发论坛](http://weappdev.com/) [http://weappdev.com/](http://weappdev.com/)
垂直微信小程序开发论坛
## 版本信息
`version 0.1`
## 效果预览

## 使用
1. copy 文件 `WxNotificationCenter.js` 到你的开发目录中
This file has been truncated. show original
以移动端的思维来思考微信小程序
微信小程序本身就可以划归为移动开发范畴,不管语法是怎么样的,如果有移动开发经验的同学来说,将自己的移动端思维拿到微信小程序中加以使用,可能效果会更好。
来源
微信小程序开发论坛 weappdev.com/
垂直微信小程序开发交流社区
