Detailed explanation of the applet Development Guide and the applet Guide
Write code
Create a applet instance
Click "edit" in the left-side navigation bar of the developer tool. We can see that this project has been initialized and contains some simple code files. The key and necessity are app. js, app. json, and app. wxss. The. js suffix is a script file, the. json suffix is a configuration file, and the. wxss suffix is a style sheet file. The applet will read these files and generate the applet instance.
Next we will briefly understand the functions of these three files to facilitate modification and develop our own mini programs from scratch.
App. js is the script code of a small program. In this file, we can listen to and process the lifecycle functions of the applet and declare global variables. Call the rich APIs provided by the framework, such as synchronous storage and synchronous reading of local data. For more information about available APIs, see the API documentation.
// App. jsApp ({onLaunch: function () {// call the API to obtain data from the local cache 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 {// call the logon interface wx. login ({success: function () {wx. getUserInfo ({success: function (res) {that. globalData. userInfo = res. userInfo; typeof cb = "function" & cb (that. globalData. userInfo) }}) }};}, globalData: {userInfo: null }})
App. json is a global configuration for the entire applet. In this file, we can configure the page that the applet consists of, configure the background color of the applet window, configure the navigation bar style, and configure the default title. Note that you cannot add any comments to this file. For more configuration items, refer to configuration details.
{ "pages":[ "pages/index/index", "pages/logs/logs" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle":"black" }}
App. wxss is the public style table of the entire applet. We can directly use the style rules declared in app. wxss on the class attribute of the page component.
/**app.wxss**/.container { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 200rpx 0; box-sizing: border-box;}
Create page
In this tutorial, we have two pages: The index page and the logs page, that is, the welcome page and the display page of the applet startup log. They are all under the pages directory. The path + Page name of each page in the applet must be written in pages in app. json, and the first page in pages is the homepage of the applet.
Each applet page is composed of four different suffix files with the same name in the same path, such as index. js, index. wxml, index. wxss, index. json .. The file with the js suffix is a script file, the file with the. json suffix is a configuration file, the file with the. wxss suffix is a style table file, and the file with the. wxml suffix is a page structure file.
Index. wxml is the structure file of the page:
<!--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>
In this example, <view/>, <image/>, and <text/> are used to construct the Page Structure and bind data and interactive processing functions.
Index. js is a page script file. In this file, we can listen to and process page lifecycle functions, obtain applet instances, declare and process data, and respond to page Interaction Events.
// Index. js // obtain the application instance var app = getApp () Page ({data: {motto: 'Hello world', userInfo: {}}, // bindViewTap: function () {wx. navigateTo ({url :'.. /logs '})}, onLoad: function () {console. log ('onload') var that = this // call the method of the application instance to obtain the global data app. getUserInfo (function (userInfo) {// update the data that. setData ({userInfo: userInfo}) index. wxss is the style table of the page:/** 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 ;}
The style sheet of the page is unnecessary. When a page style sheet exists, the style rules in the style sheet will overwrite the style rules in app. wxss. If you do not specify a style sheet for a page, you can also directly use the style rules specified in app. wxss in the structure file of the page.
Index. json is the page configuration file:
The page configuration file is unnecessary. When there is a page configuration file, the configuration item will overwrite the same configuration item in the window of app. json on this page. If no page configuration file is specified, the default configuration in app. json is directly used on the page.
Logs Page Structure
<!--logs.wxml--><view class="container log-list"> <block wx:for-items="{{logs}}" wx:for-item="log"> <text class="log-item">{{index + 1}}. {{log}}</text> </block></view>
The logs page uses the <block/> Control label to organize the Code. On the <block/> page, use wx: for-items to bind the logs data and expand the nodes of the logs data loop.
//logs.jsvar util = require('../../utils/util.js')Page({ data: { logs: [] }, onLoad: function () { this.setData({ logs: (wx.getStorageSync('logs') || []).map(function (log) { return util.formatTime(new Date(log)) }) }) }})
The running result is as follows:
4. Mobile phone pre-releaseOverview
On the left-side menu bar of the developer tool, select "project" and click "preview". After scanning the code, you can experience it on the client.
The above are the materials for the mini-Program Development Guide. We will continue to add relevant materials in the future. Thank you for your support for this site!