遇見幸福的蘇蘇 發表於 2021-1-21 15:18:00

微信小程序开发技术文档

<h3 align="center">数字化终端小程序开发文档</h3>
<p>一.目录结构</p>
<p>1. 小程序包含一个描述整体程序的&nbsp;app&nbsp;和多个描述各自页面的&nbsp;page。</p>
<p>一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/2022968/202101/2022968-20210121152953246-1481092889.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>2. 一个小程序页面由四个文件组成,分别是:</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/2022968/202101/2022968-20210121153020059-1440356248.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>*</strong><strong>注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名。</strong></p>
<p><strong>&nbsp;</strong></p>
<p>二.配置小程序</p>
<ol>
<li>app.json小程序全局配置文件</li>
</ol>
<p>{</p>
<p>&nbsp; "pages":[//用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪个目录。</p>
<p>&nbsp;&nbsp;&nbsp; "pages/index/index",</p>
<p>&nbsp;&nbsp;&nbsp; ...</p>
<p>&nbsp; ],</p>
<p>&nbsp; "window":{//定义小程序所有页面的顶部背景颜色,文字颜色定义等</p>
<p>&nbsp;&nbsp;&nbsp; "backgroundTextStyle":"light",</p>
<p>&nbsp;&nbsp;&nbsp; "navigationBarBackgroundColor": "#388bff",</p>
<p>&nbsp;&nbsp;&nbsp; "navigationBarTitleText": "数字化终端",</p>
<p>&nbsp;&nbsp;&nbsp; "navigationBarTextStyle":"white",</p>
<p>&nbsp;&nbsp;&nbsp; "enablePullDownRefresh": true,</p>
<p>&nbsp;&nbsp; &nbsp;"onReachBottomDistance": 50</p>
<p>}</p>
<ol>
<li>页面配置</li>
</ol>
<p>每一个小程序页面也可以使用同名&nbsp;.json&nbsp;文件来对本页面的窗口表现进行配置,页面中配置项会覆盖&nbsp;app.json&nbsp;的&nbsp;window&nbsp;中相同的配置项。</p>
<p>例如:</p>
<p>{</p>
<p>&nbsp; "navigationBarBackgroundColor": "#ffffff",</p>
<p>&nbsp; "navigationBarTextStyle": "black",</p>
<p>&nbsp; "navigationBarTitleText": "页面标题名称",</p>
<p>&nbsp; "backgroundColor": "#eeeeee",</p>
<p>&nbsp; "backgroundTextStyle": "light"}</p>
<p>三.小程序框架</p>
<p>&nbsp;</p>
<ol>
<li>注册页面</li>
</ol>
<p>对于小程序中的每个页面,都需要在页面对应的&nbsp;js&nbsp;文件中进行注册,指定页面的初始数据、生命周期回调、事件处理函数等。</p>
<p>//index.jsPage({</p>
<p>&nbsp; data: {</p>
<p>&nbsp;&nbsp;&nbsp; text: "This is page data."</p>
<p>&nbsp; },</p>
<p>&nbsp; onLoad: function(options) {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面创建时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onShow: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面出现在前台时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onReady: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面首次渲染完毕时执行</p>
<p>&nbsp; },</p>
<p>&nbsp;&nbsp;onHide: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面从前台变为后台时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onUnload: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面销毁时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onPullDownRefresh: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 触发下拉刷新时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onReachBottom: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面触底时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onShareAppMessage: function () {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面被用户分享时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onPageScroll: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面滚动时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onResize: function() {</p>
<p>&nbsp;&nbsp;&nbsp; // 页面尺寸变化时执行</p>
<p>&nbsp; },</p>
<p>&nbsp; onTabItemTap(item) {</p>
<p>&nbsp;&nbsp;&nbsp; // tab 点击时执行</p>
<p>&nbsp;&nbsp;&nbsp; console.log(item.index)</p>
<p>&nbsp;&nbsp;&nbsp; console.log(item.pagePath)</p>
<p>&nbsp;&nbsp;&nbsp; console.log(item.text)</p>
<p>&nbsp; },</p>
<p>&nbsp; // 事件响应函数</p>
<p>&nbsp; viewTap: function() {</p>
<p>&nbsp;&nbsp;&nbsp; this.setData({</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text: 'Set some data for updating view.'</p>
<p>&nbsp;&nbsp;&nbsp; }, function() {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // this is setData callback</p>
<p>&nbsp;&nbsp;&nbsp; })</p>
<p>&nbsp; },</p>
<p>&nbsp; // 自由数据</p>
<p>&nbsp; customData: {</p>
<p>&nbsp;&nbsp;&nbsp; hi: 'MINA'</p>
<p>&nbsp; }})</p>
<p>&nbsp;</p>
<ol>
<li>页面生命周期</li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;<img src="https://img2020.cnblogs.com/blog/2022968/202101/2022968-20210121153107387-1189439081.png"></p>
<p>&nbsp;</p>
<p><img src="https://img2020.cnblogs.com/blog/2022968/202101/2022968-20210121153123330-24647401.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<ol>
<li>数据的绑定</li>
</ol>
<p>WXML 中的动态数据均来自对应 Page 的 data。</p>
<h3>简单绑定</h3>
<p>数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于:</p>
<h3>内容</h3>
<p>&lt;view&gt; {{ message }} &lt;/view&gt;</p>
<p>Page({</p>
<p>&nbsp; data: {</p>
<p>&nbsp;&nbsp;&nbsp; message: 'Hello MINA!'</p>
<p>&nbsp; }})</p>
<h3>组件属性(需要在双引号之内)</h3>
<p>&lt;view id="item-{{id}}"&gt; &lt;/view&gt;</p>
<p>Page({</p>
<p>&nbsp; data: {</p>
<p>&nbsp;&nbsp;&nbsp; id: 0</p>
<p>&nbsp; }})</p>
<h3>控制属性(需要在双引号之内)</h3>
<p>&lt;view wx:if="{{condition}}"&gt; &lt;/view&gt;</p>
<p>Page({</p>
<p>&nbsp; data: {</p>
<p>&nbsp;&nbsp;&nbsp; condition: true</p>
<p>&nbsp; }})</p>
<ol>
<li>网络发起发起 HTTPS 网络请求请求</li>
</ol>
<p>wx.request({</p>
<p>url:&nbsp;app.globalData.ip&nbsp;+&nbsp;'/Ashx/CheckAssetHandler.ashx?cmd=3&amp;checkid='+this.data.pddid+'&amp;userid='+user.SYSCODE,&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header:&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'content-type':&nbsp;'application/json'</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success&nbsp;(res)&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.hideLoading()</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(res.data.code==0){</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_this.setData({</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;details:res.data.data</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.showToast({</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;res.data.message,</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon:&nbsp;'none',</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;duration:3000</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fail:&nbsp;function(e)&nbsp;{&nbsp;//网络请求错误</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.showToast({</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;'网络请求错误',</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon:&nbsp;'none'</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;})</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/14308192.html</p>
电话微信:13514280351<br><br>
来源:https://www.cnblogs.com/zwbsoft/p/14308192.html
頁: [1]
查看完整版本: 微信小程序开发技术文档