订阅号、服务号、企业号、小程序,都是微信公众平台服务,都是一种连接用户与服务的方式。
统计数据,抓取到的数据中,上架与未上架的小程序总数为 1153 个。
抓取来源
下载抓取整理好的 Txt 数据地址
抓取工具:QueryList
小程序示例项目代码,目录结构:包含 3 个 app 开头的文件 (app.js、app.json、app.wxss) 以及 pages 目录和 utils 目录。其中 pages 目录存放 2 个页面(index 与 logs) 的构成文件。
每个页面都是一个目录,目录名就是唯一的页面名。
- .js 文件是页面逻辑处理层
- .wxss 是页面的样式表文件
- .wxml 是页面的结构文件
- .json 文件是页面的配置文件
- .js 与 .wxml 文件是必需的。
app.js, app.json, app.wxss 必须放在根目录下。
app.js 是小程序的脚本代码,用来监听并处理小程序的生命周期函数、声明全局变量。
app.json 是对整个小程序的全局配置,配置小程序是由哪些页面组成,配置小程序的窗口背景颜色等。
app.wxss 是整个小程序的公共样式表。
app.js 和 app.json 是必需的。
当有页面配置文件时,文件中的配置项在该页面上覆盖 app.json 的 window 中相同的配置项。若没有制定页面的文件,则在该页面直接使用 app.json 中的默认配置项。
<!-- logs.wxml -->
<view class="container log-list">
<block wx:for="{{logs}}" wx:for-item="log">
<text class="log-item">{{index + 1}}. {{log}}</text>
</block>
</view>
logs 页面使用 <block/> 控制标签来组织代码,在 <block/> 上使用控制属性 wx:for 绑定 logs数据,并将 logs 数据循环展开节点。
tip:<block /> 并不是一个组件,仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性(如:wx:for 或 wx:if)
使用 require() 来引入模块化 .js 脚本文件:
var util = require('../../utils/util.js');
每个小程序包含一个描述整体程序的 app 实例和多个描述页面的 page。其中 app 由三个文件构成,公共配置 app.json、公共样式 app.wxss、主体逻辑 app.js。
每个 page 最多由四个文件构成:页面配置 page.json、页面结构 page.wxml、页面样式 page.wxss、页面主体逻辑 page.js。
按需在 app.js 和 page.js 中添加程序在生命周期的每个阶段相应的事件。比如:页面 onload 时,进行数据加载,onShow 时进行数据的更新。
典型的 app.js 代码结构如下:
App({
onLaunch: function() {
// initialize ...
// 启动时执行的初始化工作
},
onShow: function() {
// 小程序启动或从后台进入前台时,触发执行的操作
},
onHide: function() {
// 小程序从前台进入后台时,触发执行的操作
},
globalConf: function() {
indexDate: '',
matchDate: ''
},
dataCache: {},
globalData: 'I am global data'
})
典型的一个页面 page.js 代码结构:
Page({
Data: {Text: 'This is page data.'},
onLoad: function(options) {
// 页面加载时执行的初始化工作
},
onReady: function() {
// 页面就续后触发执行的操作
},
onShow: function() {
// 页面打开时,触发执行的操作
},
onHide: function() {
// 页面隐藏时,触发执行的操作
},
onUnLoad: function() {
// 页面关闭时触发执行的操作
},
//Event handler
viewTap: function() {
this.setData({
text: "set ssome data for updating view."
})
},
})
小程序执行的生命周期:
app.onLaunch -> app.onShow -> page1.onLoad -> page1.onShow -> page1.onReady
(打开程序,第一个页面 page1 加载完成
)
-> page1.onHide -> page2.onLoad -> page2.onShow -> page2.onReady
(从第一个页面新打开 page2)
-> page2.onUnload -> page1.onShow -> ... -> app.onUnload
(关闭 page2,返回 page1 ... 退出小程序)