Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微信小程序上手

微信小程序上手

作者头像
jeremyxu
发布于 2018-05-10 09:19:33
发布于 2018-05-10 09:19:33
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

这两天移动互联网领域发生了一件大事,微信发布了小程序,然后网上突然涌出了诸多教程,貌似大家对微信小程序的功能与想象空间兴奋不已,我免不了俗,搭建个简易的开发环境玩一玩。

搭建开发环境

按官方教程,是得先获得内测资格,取得微信小程序appid后,才可进行小程序开发的。很不幸,我没获取内测资格,但随便一搜,就找到网上的破解教程,我就学习玩一玩,就直接破解吧。

首先下载0.7版的微信web开发工具

百度: https://pan.baidu.com/s/1pLxqFzH (密码: bwt9)

安装完毕后,打开开发工具用手机微信扫描登录进去,然后就可以关闭微信web开发工具,删除刚安装的微信web开发工具。你没有听错,就是删除,0.7版本的作用仅仅是用于登录,呵呵。

再下载0.9版的微信web开发工具

百度: https://pan.baidu.com/s/1pLTKIqJ (密码: iswg)

再完成安装。

完成后需替换3个文件:

  • 使用https://raw.githubusercontent.com/gavinkwoe/weapp-ide-crack/master/createstep.js这个文件替换开发工具里/Resources/app.nw/app/dist/components/create/createstep.js
  • 使用https://raw.githubusercontent.com/gavinkwoe/weapp-ide-crack/master/projectStores.js这个文件替换开发工具里/Resources/app.nw/app/dist/stroes/projectStores.js
  • 使用https://raw.githubusercontent.com/gavinkwoe/weapp-ide-crack/master/asdebug.js这个文件替换开发工具里/Resources/app.nw/app/dist/weapp/appservice/asdebug.js

之后打开开发工具,然后点添加项目创建一个新的小程序项目

create_wx_app.png

然后填写项目细节,我没有内测帐号,就随便填appid, 项目名称也随便填,本地开发目录选个空目录就好了。

create_wx_app_detail.png

然后项目就打开了。

wx_app_ide.png

不一会儿提示有更新,微信web开发工具升级了,提示重启,那么就重启吧。重启后要重替换一下asdebug.js文件,这样开发环境就算OK了。

分析程序结构

先看一下程序结构

wx_app_src_struct.png

其中app.js是用来注册一个小程序的,主要用来响应应用生命周期事件,还可以保存应用的全局状态,详细文档可参考http://wxopen.notedown.cn/framework/app-service/app.html

app.json是应用的全局配置文件,主要用来配置应用所包含的页面、设置应用全局样式、多tab应用的配置、各种网络请求的超时时间、是否开启调试等,详细文档可参考http://wxopen.notedown.cn/framework/config.html

app.wxss是应用的全局样式文件,样式文件的规范可参考http://wxopen.notedown.cn/framework/view/wxss.html

pages目录下每个目录都是一个独立的页面,每个页面的结构都很类似。

页面目录中的*.js定义了该页面的处理逻辑,可以定义初始化数据、响应页面的生命周期事件、定义视图层要用的事件处理函数。详细文档可参考http://wxopen.notedown.cn/framework/app-service/page.html。在这里可以调用微信提供的各种API,API参见http://wxopen.notedown.cn/api/,看样子还是挺丰富的。

页面目录中的*.wxml定义了该页面的视图层,用于将逻辑层的数据展现,同时将组件的某些用户操作绑定至事件处理函数。详细文档参见http://wxopen.notedown.cn/framework/view/wxml/。可用的组件文档参见http://wxopen.notedown.cn/component/

页面目录中的*.wxss定义了该页面用到的样式。

简单分析示例代码

app.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//app.js
App({
  onLaunch: function () {
    //调用API从本地缓存中获取数据
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
  },
  getUserInfo:function(cb){
    var that = this;
    if(this.globalData.userInfo){
      typeof cb == "function" && cb(this.globalData.userInfo)
    }else{
      //调用登录接口
      wx.login({
        success: function () {
          wx.getUserInfo({
            success: function (res) {
              that.globalData.userInfo = res.userInfo;
              typeof cb == "function" && cb(that.globalData.userInfo)
            }
          })
        }
      });
    }
  },
  globalData:{
    userInfo:null
  }
})

这个代码比较简单。

  • 响应应用的启动事件,在其中调用微信API读取本地存储中的logs值,往里插入一条当前时间后,再存回本地存储的logs值
  • 提供一个getUserInfo方法,便于其它页面快捷地获取用户信息
  • 为了减少调用微信API的次数,将获取到的用户信息保存在全局变量中

index.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//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
      })
      that.update()
    })
  }
})

上述代码也很简单。

  • 定义页面所依赖的初始数据data
  • 定义了一个事件处理函数bindViewTap
  • 响应页面的加载事件,在其中获取用户信息,获取到用户信息后更新数据data,最后强制刷新视图

index.wxml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--index.wxml-->
<view class="container">
  <view  class="userinfo" bindtap="bindViewTap">
    <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>

视图层就更简单了,就是绑定逻辑层数据,然后使用bindtap="bindViewTap"绑定了一个逻辑层的事件处理函数。

logs目录下的代码与上面也很类似,就不具体解释了。唯一要说明的是其中引入自已写的其它js,这个地方是使用的CommonJS的引入语法。

1

var util = require('../../utils/util.js')

评价

整合看整个小程序的源码架构还是比较简单的,特别是每个页面使用了View-ViewModel的结构,以前使用过ReactJS,对这个还是挺熟悉的,用起来很自然。

小程序提供的组件还是比较丰富的,而且试用了下,反应很迅速,猜测是类似ReactNative的实现方案。

微信给小程序提供的API也还算丰富,剩下就看利用这些API都构想出什么创意了。

小遗憾

估计真实开发很少人会直接用开发工具里的编辑器的,反正我是习惯用sublime的。但每次在sublime里改完代码都需要回到开发工具里按Cmd+B重新编辑后才可以查看效果,习惯了webpack,gulp那种保存后即编译刷新的开发方式,这样还真不习惯。

参考

http://blog.csdn.net/xiehuimx/article/details/52629657 https://github.com/gavinkwoe/weapp-ide-crack http://wxopen.notedown.cn/framework/structure.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
贝壳找房流量分发数据回收与治理演进之路
作者 | 张昭 编辑 | 严强 数据回收承载着日均数十亿的准实时数据聚合和计算,输出商机多维度实时流数据,供下游相关业务系统去订阅消费,实现准实时的业务场景交互。 数据回收除了默默生产数据外,还能做哪些事情?对于公司诸多商机相关的商业化产品有哪些重要作用?对于提升经纪人作业体验都有哪些措施?对于赋能分客策略推荐引擎又有哪些规划? 贝壳找房商机中台资深研发工程师张昭在 QCon+ 案例研习社【贝壳找房广告流量分发架构演进】专题带来了相关分享,以下是分享全文。 你好,我是来自贝壳找房商机中台的张昭,
深度学习与Python
2023/03/29
5360
贝壳找房流量分发数据回收与治理演进之路
关系图谱在贝壳的构建和应用
导读:贝壳找房积累了大量房、客、人的行为关系数据,我们通过关系图谱的相关技术对这些行为关系进行挖掘,并在实际应用中取得了不错的效果。本次分享将主要介绍关系图谱在贝壳找房的构建历程和落地应用探索。
Spark学习技巧
2021/03/05
1.7K0
关系图谱在贝壳的构建和应用
贝壳找房的深度学习模型迭代及算法优化
贝壳找房,以为 2 亿家庭提供全方位服务链接为愿景和使命,目前具备新房、二手、租赁、装修、海外几大业务场景。在提供服务过程当中,贝壳打造了真实房源体系和 ACN 经纪人体系,并凭借其拥有超过 1.8 亿的房源、20 万经纪人,每月为超过 3000 万的用户提供服务。
机器学习AI算法工程
2019/10/28
2.4K0
贝壳找房的深度学习模型迭代及算法优化
SLA 4 个 9 ,贝壳高可用架构的质量保障体系
导语 | 贝壳用户需求和用户量的不断增长,对系统的高可用性提出了更高的要求,服务端的质量保证工作该如何开展?本文是对贝壳找房-基础平台中心-质量平台赋能部总监——项旭老师在云+社区沙龙online的分享整理,分享一些关于架构的新思想,希望与大家一同交流。
腾讯云开发者
2020/10/19
4.6K0
恭喜贝壳找房上市!
北京时间8月13日晚间,中国领先的线上线下房产交易和服务平台——贝壳找房正式在纽交所挂牌上市,证券代码为“BEKE”。 从2001年北京甜水园的一间链家门店,到今天的中国居住服务平台第一股,贝壳找房创始人兼董事长左晖走了十九年。 十九年间,从PC互联网到移动互联网,再到今天的产业互联网,行业大潮涌动。创业者一茬又一茬长起,喊着“颠覆传统”、喊着“去中介化”。 风口轮转,左晖的赛道一直未变,扎根在居住服务行业:从自营房地产中介链家,到覆盖100多个城市、4.2万门店,服务45.6万经纪人的房产交易和服务
腾讯即时通信IM
2020/08/17
9670
贝壳找房基于 Flink 的实时平台建设
摘要:本文由贝壳找房实时计算负责人刘力云分享,主要内容为 Apache Flink 在贝壳找房业务中的应用,分为以下三方面:
大数据技术架构
2020/03/11
1.2K0
开门红财报下,贝壳找房的春天依然有点冷
对于绝大部分人来说,买房是人生的一笔必要消费,但不断上涨的房价却让打工人苦不堪言。而正是因为需求高、交易单价高的特点,房产交易的各个环节都具有巨大的市场,吸引了众多玩家前来捧场。双11期间,天猫、京东、苏宁都宣布了对房产交易的加码。
刘旷
2020/11/19
3790
开门红财报下,贝壳找房的春天依然有点冷
贝壳网流式数据的平台化实践与挑战
(文末有福利!) 今天为大家分享贝壳找房流式数据的平台化实践与挑战,具体介绍下如何建设流式数据平台来满足业务方的需求。
kk大数据
2019/08/14
1.3K0
贝壳找房值百亿美元吗?
今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客中国丨趣头条丨腾讯云·云+社区
数据猿
2019/08/06
5910
分布式图数据库在贝壳的应用实践
导读:你想知道百亿级图谱如何实现毫秒级查询吗?社区众多的图数据库中如何才能挑选到一款适合实际应用场景的图数据库呢?贝壳找房的行业图谱480亿量级的三元组究竟是如何存储的呢?本文将带你探索上述问题并从中得到解答。本次分享题目为"分布式图数据库在贝壳找房的应用实践",共分为以下五大块内容:
Spark学习技巧
2021/03/05
1.3K0
分布式图数据库在贝壳的应用实践
贝壳找房的2021,依然充满变数
2021年的贝壳找房充满变数,先是被指垄断,而后又失去了精神支柱一般的创始人左晖。在接二连三的打击中,贝壳发布了2021年上半年及第二季度财报,毫不意外贝壳找房业绩整体表现差强人意。
金融外参
2021/08/20
5100
贝壳找房的2021,依然充满变数
房产交易进化:探索“去中介”无人区
回顾国内房产交易赛道近十余年的发展,资本红利催生了贝壳找房、安居客、天猫好房等等颇具规模和实力的二手房交易平台。与此同时,互联网、人工智能等技术在房产交易市场上广泛应用,技术的升级加速了房产交易市场的进化。
刘旷
2022/01/18
5980
2021年房地产经纪行业发展研究报告
房地产经纪是指以收取佣金为目的,为促成他人房地产交易而从事居间、代理等经纪业务的经济活动。主要业务是接受房地产开发商的委托,销售其开发的新商品房。房地产经纪业务,不仅是代理新房的买卖,还包括代理旧房的买卖,不仅代理房地产的买卖,还代理房地产的租赁业务。根据中国《经纪人管理办法》规定,房地产经纪是一种中介行为。
资产信息网
2022/04/08
1.2K0
2021年房地产经纪行业发展研究报告
贝壳找房IPO,房产电商依旧难走
贝壳找房作为全国第二大交易平台,由线下地产经纪巨头链家转型而来。而此前链家一直是中国最大的地产经纪品牌,其绿底白字的招牌一直是深夜城市中最吸引眼球的存在,点缀在城市之中。
刘旷
2020/07/29
4460
在线看房,这么洋气的操作贝壳已经实现了
众所周知,每到了毕业季,北上广深这四个主要“战场”将迎来一大波的“新社畜”。在这个时候,各大房屋中介是焦头烂额,不仅要和包租公包租婆打好关系盘到一个好房源,最重要的是要“收割”这些“新社畜”完成他们的KPI。这个月吃粥吃饭就靠这些毕业生了。 所以在北上广深这四个地方的城中村你们都会看到西装革履的小哥骑着电单车后面载着一个可可爱爱的妹子或者小哥哥,他们搂着小哥的腰,依偎在他的身上,形成了城中村的一道亮丽的风景线。这些新社畜们也是躲避不了出校门后的第一大事件:我和中介的第N次约会。 看房前你以为你以后的
腾讯即时通信IM
2020/06/19
1.5K0
2019大前端秘籍:贝壳找房多端提效和性能质量优化实践
6 月 20 日下午,GMTC 北京 2019 全球大前端技术大会「多端提效与质量优化实践」技术专场,来自贝壳找房的四位技术专家分别就“极限前端性能优化”、“贝壳找房 Node 服务稳定性建设”、“贝壳移动端监控建设实践”以及“ Flutter 在贝壳的接入实践”主题进行分享。InfoQ 对本专场的精华内容做了部分梳理和总结。
五月君
2019/11/06
1.5K0
2019大前端秘籍:贝壳找房多端提效和性能质量优化实践
AI讲房、VR看房、楼盘字典……居住服务领域的一哥,走了这样一条产业互联网之路
一年时间,贝壳找房已覆盖98个城市,入驻的新经纪品牌160个,为超过20万名经纪人提供服务,链接门店2.1万个。
量子位
2019/05/14
1.1K0
迈向更灵活,贝壳 OLAP 平台架构演进
​导语 |为了满足贝壳日益复杂、多样化业务场景下的多维数据分析需求,贝壳 OLAP 平台经历了从早期基 于Hive+MySQL 原始阶段,到基于 Kylin单一引擎的平台化建设,再到支持多种不同OLAP引擎的灵活架构的发展历程。本文是对贝壳找房数据智能中心资深研发工程师——肖赞在云+社区沙龙online的分享整理,希望与大家一同交流。
腾讯云开发者
2020/10/19
1.8K0
58同城 | Embedding技术在房产推荐中的应用
导读:在深度学习的应用过程中,Embedding 这样一种将离散变量转变为连续向量的方式为神经网络在各方面的应用带来了极大的扩展,有"万物皆可 Embedding"的说法。本文将以58同城为例,分享 Embedding 相关技术的实践,将首先介绍58同城房产的相关业务和推荐场景,然后讲解 Embedding 的相关技术实践方案,最后会深入介绍 Embedding 技术在房产业务推荐上的落地。
week
2020/06/15
1.1K0
58同城 | Embedding技术在房产推荐中的应用
AI 搜房,贝壳找房的Milvus实践
贝壳作为一家房产服务互联网平台,如何在海量房源中选出能够快速成交的房源是对平台和经纪人来说都是一件非常重要同时具有挑战的事情,但是针对房型图,户型信息等一系列非结构化数据在平台中应该怎么搜索呢?
Zilliz RDS
2020/04/28
1.3K0
AI 搜房,贝壳找房的Milvus实践
推荐阅读
相关推荐
贝壳找房流量分发数据回收与治理演进之路
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验