1月9日,微信小程序如约而至.
小程序有点像升级版的服务号,通过其中的Demo:
可以知道一个应用的基本组件表单、导航、媒体、地图等它都包含了。而且我在体验了京东和猫眼两个小程序后,感觉效果还不错,和原生应用相比,已差别不大,完全可以替代一些低频次应用的使用场景,且开发成本会大幅下降。
“微信最核心的价值,就是连接——提供一对一、一对多和多对多的连接方式,从而实现人与人、人与智能终端、人与社交化娱乐、人与硬件设备的连接,同时连接服务、资讯、商业。” -From微信
目前小程序有几个入口:
- 扫二维码
- 微信搜索
- 公众号关联
- 好友分享
- 历史记录
小程序很好地缩短了获得服务的路径,想一想一扫码就能获得机票信息、能立马买车票,无需打开相对应的app,不必要忍受每次几秒的闪屏画面,简单且快捷地获得你所需。
关于小程序所要解决的事情,可以看看这篇文章小程序想要什么? 。
这个公众号前段时间还写了一篇激进的文章:别开发app了并在文章最后说出“或许某一天,互联网公司的技术团队里,会专门有一个岗位叫「微信开发工程师」,你信不信?我信。”。预测大部分原生app的开发会被小程序所替代。虽然此文的标题略为耸人听闻(要是真不需要开发app了,我也许就失业了-.-),但却无法忽略微信强大的生态,我预测微信小程序会成为很重要的一端,与iOS和Android原生相辅相成。
和原生app相对相比,小程序节省开发成本有目共睹。也许以后的创业公司会从做个微信小程序开始试验,而不是前两年的遍地app.
从开发者角度,可以分析一个官方网站的一个小例子:
这个页面有三个文件组成:index.js index.wxml index.wxss.
- index.js为脚本文件:
//index.js
//获取应用实例
var app = getApp()
Page({
data: {
motto: 'Hello World',
userInfo: {}
},
//事件处理函数
bindViewTap: function() {
wx.navigateTo({
url: '../logs/logs'
})
},
onLoad: function () {
console.log('onLoad')
var that = this
//调用应用实例的方法获取全局数据
app.getUserInfo(function(userInfo){
//更新数据
that.setData({
userInfo:userInfo
})
})
}
})
- index.wxml为页面的结构文件(类似html):
<!--index.wxml-->
<view class="container">
<view bindtap="bindViewTap" class="userinfo">
<image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</view>
<view class="usermotto">
<text class="user-motto">{{motto}}</text>
</view>
</view>
- index.wxss(类似css):
/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
.usermotto {
margin-top: 200px;
}
小程序提供了一套api接口供开发者使用,我们发起一个请求:
wx.request({
url: 'test.php', //仅为示例,并非真实的接口地址
data: {
x: '' ,
y: ''
},
header: {
'content-type': 'application/json'
},
success: function(res) {
console.log(res.data)
}
})
可以参考下它的API文档
某一天,只要一个微信就足以应对你的绝大部分需求。One is all.
对于移动开发者来说,也许某一天你的老板会拉着你去开发小程序了(不要谈就开发而言,iOS、Android开发和小程序开发相关度有多么地低)。
对于我而言,2017年,顺带React Native,是时候点亮下自己的JS技能了。据说前端撕逼比较严重,好想去感受下:)