官方文档教程1:http://bcoder.cn/wxopen/

官方文档教程2:http://bing.aliaii.com/wxopen/

本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志。下载源码

1. 获取微信小程序的 AppID

如果你是收邀请的开发者,我们会提供一个帐号,利用提供的帐号,登录 https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的 AppID 了,注意不可直接使用服务号或订阅号的 AppID 。

如果是游客模式,可以跳过本步骤

注意:如果我们不是用注册时绑定的管理员微信号,在手机上体验该小程序。那么我们还需要操作“绑定开发者”。即在“用户身份”-“开发者”模块,绑定上需要体验该小程序的微信号。本教程默认注册帐号、体验都是使用管理员微信号。

2. 创建项目

​ 我们需要通过开发者工具,来完成小程序创建和代码编辑。

​ 开发者工具安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入上文获取到的 AppID ,设置一个本地项目的名称(非小程序名称),比如“我的第一个项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就可以了。

​ 为方便初学者了解微信小程序的基本代码结构,在创建过程中,如果选择的本地文件夹是个空文件夹,开发者工具会提示,是否需要创建一个 quick start 项目。选择“是”,开发者工具会帮助我们在开发目录里生成一个简单的 demo。

​ 项目创建成功后,我们就可以点击该项目,进入并看到完整的开发者工具界面,点击左侧导航,在“编辑”里可以查看和编辑我们的代码,在“调试”里可以测试代码并模拟小程序在微信客户端效果,在“项目”里可以发送到手机里预览实际效果。

3. 编写代码

创建小程序实例

​ 点击开发者工具左侧导航的“编辑”,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是 app.js、app.json、app.wxss 这三个。其中,.js后缀的是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件。微信小程序会读取这些文件,并生成小程序实例。

​ 下面我们简单了解这三个文件的功能,方便修改以及从头开发自己的微信小程序。

​ app.js是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用框架提供的丰富的 API,如本例的同步存储及同步读取本地数据。想了解更多可用 API,可参考 API 文档

//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}
})

​ app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。更多可配置项可参考配置详解

{"pages":["pages/index/index","pages/logs/logs"],"window":{"backgroundTextStyle":"light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "WeChat","navigationBarTextStyle":"black"}
}

​ app.wxss 是整个小程序的公共样式表。我们可以在页面组件的 class 属性上直接使用 app.wxss 中声明的样式规则。

/**app.wxss**/
.container {height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: space-between;padding: 200rpx 0;box-sizing: border-box;
}

创建页面

​ 在这个教程里,我们有两个页面,index 页面和 logs 页面,即欢迎页和小程序启动日志的展示页,他们都在 pages 目录下。微信小程序中的每一个页面的【路径+页面名】都需要写在 app.json 的 pages 中,且 pages 中的第一个页面是小程序的首页。

​ 每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。

​ index.wxml 是页面的结构文件:

<!--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>

​ 本例中使用了<view/><image/><text/>来搭建页面结构,绑定数据和交互处理函数。

​ 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.wxss 是页面的样式表:

/**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;
}

​ 页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。

​ index.json 是页面的配置文件:

​ 页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

​ logs 的页面结构

<!--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>

​ logs 页面使用 <block/> 控制标签来组织代码,在 <block/> 上使用 wx:for-items 绑定 logs 数据,并将 logs 数据循环展开节点

//logs.js
var 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))})})}
})

运行结果如下:

4. 手机预览

​ 开发者工具左侧菜单栏选择”项目”,点击”预览”,扫码后即可在微信客户端中体验。

微信小程序开发官方文档相关推荐

  1. 微信小程序开发规范文档

    微信小程序开发规范文档 摘自: https://shimo.im/docs/EZKacqyM018gmopv/read 目录规范 1.目录概述 组件文件 所有组件相关文件统一放在components目 ...

  2. 微信小程序开发学习文档(万字总结,一篇搞定前端开发)

    一.微信小程序简介 与网页开发不同,小程序有自己的一套标准开发模式:-申请小程序开发账号-安装小程序开发工具-创建和配置小程序项目 1.1 创建第一个小程序 1.2 主界面的5个组成部分 1.3小程序 ...

  3. node.js 微信小程序 部署服务器_微信小程序开发入门(一),Nodejs搭建本地服务器...

    1.  如何模拟真实环境中,读取服务端数据,首先需要使用Nodejs搭建一个本地服务器的环境. 在搭建web服务器之前,需要先安装node.js(安装版本最好为6.9.x) 安装后node.js,接下 ...

  4. 微信小程序开发语言的选择

    微信使用的开发语言和文件很「特殊」. 小程序所使用的程序文件类型大致分为以下几种: ①WXML(WeiXin Mark Language,微信标记语言) ②WXSS(WeiXin Style Shee ...

  5. 微信小程序开发准备:

    以下的知识都是学习开发前应该了解一下的. 微信使用的开发语言和文件很特殊. 小程序所使用的程序文件类型大致分为以下几种: WXML(WeiXin Mark Language,微信标记语言) WXSS( ...

  6. 微信小程序开发:获取位置打开地图

    目录 01 准备工作 02 小程序基础知识 微信小程序的四种类型的文件 app.json app.js app.wxss app.wxml 目录树 03 获取位置打开地图 参考 效果 程序说明 04 ...

  7. 【微信小程序宝典】从零开始做微信小程序开发NO.2

    2019独角兽企业重金招聘Python工程师标准>>> 为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 首先感谢几位给予建议的同学, ...

  8. 微信小程序开发常见warnings警告解决方案

    在小程序开发过程中,只要稍不注意代码细节,就会出现很多 warnings 警告,虽然在对小程序的运行并没有什么影响,但是作为一名严谨的程序猿,是不允许它们存在的. 下面我将从我的实际项目开发过程中碰到 ...

  9. 微信小程序游戏开发文档以及开发工具地址

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 微信官方于 2017 - 12 - 28 日 开发微信小程序 开发小游戏 , 微信小程序小游戏开发官方 ...

  10. 微信小程序开发教程手册文档

    微信小程序开发教程文档 微信小程序是什么?微信小程序如何开发?微信小程序开发教程有哪些?本教程将从微信小程序本身,结合微信官方-微信小程序开发工具,带你一步步创建一个微信小程序,并在手机操作预览该小程 ...

最新文章

  1. iOS 即时聊天键盘处理
  2. 企业网络推广方法之网站内容链接SEO该怎么做?
  3. python timer使用-python中timer定时器常用的两种实现方法
  4. Linux文件权限(3)
  5. 微信8年,你从中学到了什么?
  6. Java nio 学习笔记 相关知识
  7. 计算机组成原理tec9,(15-16-2)实验1-寄存器-TEC9.docx
  8. 使用自己的域名解析CSDN博客
  9. docker学习1--dockerfile
  10. DBA自述:非科班出身,如何成为Oracle ACE
  11. python和c++哪个好-C/C++和Python哪个更有前景?
  12. 涨薪慢,该不该跳槽?
  13. KVM 虚拟化原理探究(5)— 网络IO虚拟化
  14. Plants vs. Zombies(二分好题+思维)
  15. Android 设置背景透明度
  16. iMC iNode客户端上岗证
  17. CTF小工具下载整理
  18. VBS隐藏bat窗口
  19. 西部世界第二季百度云免费在线观看_迅雷下载
  20. Fixing DSDT

热门文章

  1. 高等数学学习笔记——第十二讲——正项级数收敛性判别方法
  2. 白话空间统计之四:P值和Z值(中)
  3. 计算机桌面没有cdef,如何解决电脑CDEF盘都打不开出现“该文件没有程序与之关联来执行该操作”的问题...
  4. 机器人抓取中物体3D定位算法介绍
  5. 全国大学生智能汽车竞赛 --图像处理上位机篇开源了
  6. python调用高德接口获取国内行政区经纬度数据
  7. 人工智能新闻写作软件3.0时代来临
  8. android bluez 编译,[android源码分析]bluez起动过程中的各种plugin的初始化(一)-bluetooth_builtin数组所耍的花样...
  9. matlab中dzdx,MatConvnet工具箱使用手册翻译理解一
  10. 计算机雕刻教学设计,综合实践《果蔬雕刻》教学设计第一课时